我现在理解工厂设计模式背后的理论,但似乎无法找到它的使用的任何现实例子。有人能够提供一个吗?
答案 0 :(得分:4)
工厂设计有一些变种:抽象工厂,工厂方法等......既然你对现实世界的例子感兴趣,我想我会分享我的所作所为。
作为一个例子,我使用数据访问工厂来返回数据访问类的具体实例。逻辑类不知道或关心使用哪个数据库;它只是向工厂询问数据类,然后使用该数据类。
这是我的DataAccessFactory类中的方法。它负责确定要使用的数据类,并将其返回给调用者:
public static T GetDataInterface<T>() where T : class
{
Assembly assembly = Assembly.GetExecutingAssembly();
T theObject = (from t in assembly.GetTypes()
where t.GetInterfaces().Contains(typeof(T))
&& t.GetConstructor(Type.EmptyTypes) != null
&& t.Namespace == _namespace
select Activator.CreateInstance(t) as T).FirstOrDefault() as T;
return theObject as T;
}
这就是我的一个业务逻辑类发出DAL请求的方式:
return DataAccessFactory.GetDataInterface<IApplicationData>().GetAll();
业务逻辑与数据访问层完全分离。希望有所帮助。
答案 1 :(得分:1)