Abstract Factory
来源:互联网 发布:linux mount无权限 编辑:程序博客网 时间:2024/06/06 14:28
创建一组相关的产品。
1)Abstract Factory Class:创建一组产品的接口
2)Concrete Factory:继承Abstract Factory;实际过程中一个具体的工厂只需要创建一次,考虑Singleton
3)IProduct:一类产品的接口
4)Concrete Product:继承Iproduct。
5)Client:只包含AbstractFactory和IProduct的引用,不知道ConcreteFactory和ConcreteProduct的存在。
public abstract class AbstractFactory
{
public abstract IProduct1 CreateProduct1();
public abstract IProduct2 CreateProduct2();
}
interface IProduct1 {string GetName();}
public class Product1 : IProduct1 {public string GetName() {return "this is product 1";}}
interface IProduct2 {string GetName();}
public class Product2 : IProduct1 {public string GetName() {return "this is product 2";}}
public sealed class ConcreteFactory : AbstractFactory
{
private static ConcreteFactory _instance = new ConcreteFactory();
public ConcreteFactory GetInstance()
{
if (_instance == null)
_instance = new ConcreteFactory();
return _instance;
}
private ConceteFactory(){}
public override IProduct1 CreateProduct1() { return new Product1();}
public override IProduct2 CreateProduct2() { return new Product2();}
}
- Abstract Factory
- abstract factory
- Abstract Factory
- Abstract Factory
- abstract factory
- Abstract Factory
- Abstract Factory
- Abstract Factory
- Abstract Factory
- Abstract Factory
- Abstract Factory
- Abstract Factory
- abstract factory
- abstract factory
- Abstract Factory
- Abstract Factory
- Abstract Factory
- Abstract Factory
- %5程序员
- 从汇编层面深度剖析C++虚函数
- 一个数学问题
- asp.net 把sql表中数据生成为insert语句
- ListControl用法总会(1)
- Abstract Factory
- 转:VS2010和VS2008 KB2465361之后,MFC静态链接 EXE体积变大问题
- C/C++ 笔试、面试题目大汇总
- 安装 mysqldb for python
- linux文件时间(atime,mtime,ctime)辨析
- Windows XP权限设置详解
- 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名及手工脚本创建oracle数据库
- 使用windowbuilder编程
- 移动互联网