首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C#中使用工厂设计模式的示例

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

Stack Overflow用户
提问于 2012-04-05 23:07:23
回答 2查看 2.8K关注 0票数 1

我现在理解了工厂设计模式背后的理论,但似乎找不到任何实际的例子来使用它。有没有人能好心提供一个?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-06 06:38:22

工厂设计有几种变体:抽象工厂、工厂方法等。既然你对一个真实世界的例子感兴趣,我想我应该分享我所做的。

作为一个示例,我使用数据访问工厂来返回数据访问类的具体实例。逻辑类不知道或不关心正在使用哪个数据库;它只是向工厂请求一个数据类,然后使用该数据类。

这是我的DataAccessFactory类中的方法。它负责确定要使用哪个数据类,并将其返回给调用者:

代码语言:javascript
运行
复制
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请求的方式:

代码语言:javascript
运行
复制
return DataAccessFactory.GetDataInterface<IApplicationData>().GetAll();

业务逻辑与数据访问层完全解耦。希望这能有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2012-04-05 23:13:27

因为你的问题非常笼统,只有一些关于这个主题的链接和例子,等等:

  • http://www.dotnetperls.com/factory
  • Factory Design Pattern (needing critique)
  • http://www.dofactory.com/Patterns/PatternAbstract.aspx#_self2
  • http://www.codeproject.com/Articles/57421/Design-Patterns-Part-2-The-Factory-Pattern

该模式在.NET框架中使用-例如,在WebRequest中使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10031176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档