我现在理解了工厂设计模式背后的理论,但似乎找不到任何实际的例子来使用它。有没有人能好心提供一个?
发布于 2012-04-06 06:38:22
工厂设计有几种变体:抽象工厂、工厂方法等。既然你对一个真实世界的例子感兴趣,我想我应该分享我所做的。
作为一个示例,我使用数据访问工厂来返回数据访问类的具体实例。逻辑类不知道或不关心正在使用哪个数据库;它只是向工厂请求一个数据类,然后使用该数据类。
这是我的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();
业务逻辑与数据访问层完全解耦。希望这能有所帮助。
发布于 2012-04-05 23:13:27
因为你的问题非常笼统,只有一些关于这个主题的链接和例子,等等:
该模式在.NET框架中使用-例如,在WebRequest
中使用。
https://stackoverflow.com/questions/10031176
复制相似问题