四 抽象工厂模式——设计模式学习笔记
2011-08-05 00:47
281 查看
1.工厂方法模式是定义一个用于创建对象的接口,让子类决定实例化哪一个类。
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。【DP】
下图是抽象工厂模式结构图:
改进后的DataBaseAccess
现在在程序中可以完全消除了判断,甚至,我们可以将db的值保存在外部的配置文件里面,程序运行后在赋给db,这样做还能从程序外部来实现不同数据库的访问!
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。【DP】
下图是抽象工厂模式结构图:
改进后的DataBaseAccess
//std::string DataBaseAccess::db = "Sqlserver"; std::string DataBaseAccess::db = "Access"; std::string DataBaseAccess::AssemblyName="抽象工厂模式"; class DataBaseAccess { public: static IUser *createUser() { //IUser *pUser = NULL; // 其实IUser * 应该使用static IUser*作为类的成员变量比较合理, //switch(db) // 这里为了节省时间忽略 //{ //case "Sqlserver": // pUser = new SqlserverUser(); // break; //case "Access": // pUser = new AccessUser(); // break; //} //return pUser; std::string className = AssemblyName + "." + db + "User"; return (IUser *) Assembly.Load(AssemblyName).CreateInstance(className); } // createDepartment 的实现方法类似 private: static std::string db; static std::string AssemblyName; };
现在在程序中可以完全消除了判断,甚至,我们可以将db的值保存在外部的配置文件里面,程序运行后在赋给db,这样做还能从程序外部来实现不同数据库的访问!
相关文章推荐
- 设计模式学习笔记(一)——抽象工厂模式
- 设计模式学习笔记(三)——Abstract Factory抽象工厂模式
- 设计模式C++学习笔记之七(AbstractFactory抽象工厂模式)
- 设计模式C++学习笔记之七(AbstractFactory抽象工厂模式)
- 设计模式C++学习笔记之七(AbstractFactory抽象工厂模式)
- 设计模式 学习笔记(7) 抽象工厂模式、状态模式
- 设计模式学习笔记(三)——Abstract Factory抽象工厂模式 (转)
- 设计模式学习笔记(4)——抽象工厂模式
- 设计模式学习笔记(3) - 抽象工厂模式
- Java学习笔记---设计模式之抽象工厂模式
- 设计模式学习笔记五:抽象工厂模式
- 设计模式学习笔记(六):抽象工厂模式
- 设计模式学习笔记(三)——Abstract Factory抽象工厂模式
- java/android 设计模式学习笔记(4)---抽象工厂模式
- 设计模式学习笔记五:抽象工厂模式
- 设计模式学习笔记——抽象工厂模式
- Java-马士兵设计模式学习笔记-工厂模式-抽象工厂模式
- 设计模式学习笔记——简单工厂模式、工厂方法模式、抽象工厂模式
- 设计模式C++学习笔记之七(AbstractFactory抽象工厂模式)