您的位置:首页 > 其它

四 抽象工厂模式——设计模式学习笔记

2011-08-05 00:47 281 查看
1.工厂方法模式是定义一个用于创建对象的接口,让子类决定实例化哪一个类。

抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。【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,这样做还能从程序外部来实现不同数据库的访问!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: