在C#中使用工厂设计模式的示例

时间:2012-04-05 15:07:23

标签: c# oop design-patterns factory-pattern

我现在理解工厂设计模式背后的理论,但似乎无法找到它的使用的任何现实例子。有人能够提供一个吗?

2 个答案:

答案 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)