1.介绍

抽象工厂模式(Abstract Factory Pattern)隶属于设计模式中的创建型模式,用于产品族的构建。抽象工厂是所有形态的工厂模式中最为抽象和最具一般性的一种形态。

抽象工厂是指当有多个抽象角色时使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体情况下,创建多个产品族中的产品对象。

2.示例

    public class Human : IRace
{
public void ShowKing()
{
Console.WriteLine("The king of Human is Sky");
}
}
    public class NE : IRace
{
public void ShowKing()
{
Console.WriteLine("The king of NE is Moon");
}
}
    public class Orc : IRace
{
public void ShowKing()
{
Console.WriteLine("The king of Orc is Grubby");
}
}
    public class Undead : IRace
{
public void ShowKing()
{
Console.WriteLine("The king of Undead is Gostop");
}
}
    public abstract class BaseFactory
{
public abstract IRace CreateFirst();
public abstract IRace CreateSecond();
public abstract IRace CreateThird();
public abstract IRace CreateFourth();
}
    public class FrozenThroneFactory : BaseFactory
{
#region
//public Human CreateHuman()
//{
// return new Human();
//} //public NE CreateNE()
//{
// return new NE();
//} //public Orc CreateOrc()
//{
// return new Orc();
//} //public Undead CreateUndead()
//{
// return new Undead();
//}
#endregion public override IRace CreateFirst()
{
return new Human();
} public override IRace CreateSecond()
{
return new NE();
} public override IRace CreateThird()
{
return new Orc();
} public override IRace CreateFourth()
{
return new Undead();
}
}

最新文章

  1. 学习android推荐网站
  2. 01-Vue.js入门系列
  3. WebForm 基础
  4. ubuntu su Authentication failure
  5. WordPress学习
  6. Mac OS—苹果搭建Android开发环境
  7. php使用 set_include_path
  8. 读Windows编程
  9. jdbc - Insert 'Date' value in PreparedStatement
  10. caffe的matlab接口一览表
  11. 基于Hadoop的改进Apriori算法
  12. Fill-rate, Canvases and input 【译】
  13. MD5加密。
  14. Maven学习(三)
  15. 一颗简单的JDBC栗子
  16. 新建github项目,邀请成员
  17. Ubuntu Mininet环境搭建
  18. 基于 WebGL 3D 的 HTML5 档案馆可视化管理系统
  19. python 字典嵌套字典赋值异常
  20. vuejs 单文件组件.vue 文件

热门文章

  1. Microsoft.SQL.Server2012.Performance.Tuning.Cookbook学习笔记(二)
  2. Java中的Runnable、Callable、Future、FutureTask的区别与示例
  3. part11.2-LED驱动设计
  4. "不用谢" 的11种表达
  5. Laravel5.1 实现第三方登录认证教程之 - 微信登录
  6. 使用vux组件库常见报错($t)处理
  7. MySQL 8.0 技术详解
  8. supersockets和 AppSession,AppServer 配合工作
  9. input submit标签的高度和宽度与input text的差异
  10. mac 安装 adb