C# 在C中使用factory设计模式的示例
我现在理解了工厂设计模式背后的理论,但似乎找不到任何实际的例子。有人能提供一个吗?因为你的问题非常笼统,只是关于这个主题的一些链接,带有示例等:C# 在C中使用factory设计模式的示例,c#,oop,design-patterns,factory-pattern,C#,Oop,Design Patterns,Factory Pattern,我现在理解了工厂设计模式背后的理论,但似乎找不到任何实际的例子。有人能提供一个吗?因为你的问题非常笼统,只是关于这个主题的一些链接,带有示例等: 该模式在.NET framework中使用-例如与.一起使用,因为您的问题非常笼统,只是主题上的一些链接带有示例等: 该模式在.NET framework中使用-例如与.有几种工厂设计变体:抽象工厂、工厂方法等。。。既然你对一个真实世界的例子感兴趣,我想我应该分享一下我所做的 例如,我使用数据访问工厂返回数据访问类的具体实例。逻辑类不知道或不关心正在使
该模式在.NET framework中使用-例如与.一起使用,因为您的问题非常笼统,只是主题上的一些链接带有示例等:
该模式在.NET framework中使用-例如与.有几种工厂设计变体:抽象工厂、工厂方法等。。。既然你对一个真实世界的例子感兴趣,我想我应该分享一下我所做的 例如,我使用数据访问工厂返回数据访问类的具体实例。逻辑类不知道或不关心正在使用哪个数据库;它只是向工厂请求一个数据类,然后使用该数据类 这是我的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();
业务逻辑与数据访问层完全解耦。希望有帮助。工厂设计有几种变体:抽象工厂、工厂方法等。。。既然你对一个真实世界的例子感兴趣,我想我应该分享一下我所做的 例如,我使用数据访问工厂返回数据访问类的具体实例。逻辑类不知道或不关心正在使用哪个数据库;它只是向工厂请求一个数据类,然后使用该数据类 这是我的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不管怎样,谢谢你的回答,谢谢你的链接,我现在就看。@SkonJeet欢迎你:-添加了一个来自.NET framework的示例…它并不是非常通用-我要求提供一个可以使用factory设计模式的实际示例。工厂设计模式示例的先进程度或方式取决于选择回答我的问题的人——最好能看到一系列示例+1无论如何,谢谢你的回答,谢谢你的链接,我现在就看。@SkonJeet欢迎:-添加了一个来自.NET framework的示例…潮流-这个问题即将结束的唯一原因。至于其他原因,我洗耳恭听……随波逐流——这是这个问题即将结束的唯一原因。我洗耳恭听其他原因。。。