关于抽象工厂和简单工厂的区别

wojiujibuzhu 2009-12-06 11:30:17
抽象工厂返回一系列对象,简单工厂返回一个对象。我觉得怎么说都能说通,简单工厂,
public static 接口 choose()
{
接口=null;
switch(type)
{
case:“a”:
factory=new A();
break;
case:“b”:
factory=new B();
break;
}
return 接口;
}
接口也许是有很多类实现的。所以也可以说返回一系列对象吧?
抽象工厂,
abstract public class AbstructFactory
{
public static AbstructFactory chooseFac(string type)
{
AbstructFactory factory = null;
switch (type)
{
case"a":
factory = new A();
break;
case"b":
factory = new B();
break;
}
return factory;
}
public abstract 接口1 Creat1();
public abstract 接口2 Creat2();
}
我觉得她返回的也是一个集成接口的类,怎么去更好的理解他是创建了一系列对象呢?简单工厂和抽象工厂之间的区别到底是怎么个意思?有大侠给解释下,谢谢了。
...全文
154 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ITJaneLiu 2009-12-08
  • 打赏
  • 举报
回复
学习
ctwei86 2009-12-08
  • 打赏
  • 举报
回复
抽象工厂返回的是一个能够生产具体产品的具体工厂,因而也可以说抽象工厂“生产”一系列的产品,而简单工厂“生产”的是一个具体的产品。
leehom0123 2009-12-08
  • 打赏
  • 举报
回复
抽象工厂一般结果反射使用
如果像楼主写的那样用new的话,抽象工厂就失去了它原本的意义。
tkscascor 2009-12-07
  • 打赏
  • 举报
回复
我认为, 抽象工厂 最好的 就是结合反射...那就真爽了..
cymandhxl 2009-12-07
  • 打赏
  • 举报
回复
good good study,day day up
sylz2000 2009-12-07
  • 打赏
  • 举报
回复
简单工厂模式中工厂为具体工厂,产品为抽象产品,由工厂实例创建产品实例。

抽象工厂创建多类产品,可将这些产品理解为一套相关的产品,由工厂在创建时一起创建,每类产品有不同的实例。实践中一般会用反射来创建工厂的实例,配合配置文件或依赖注入容器来避免创建不同产品时还需要修改客户端代码,即符合“修改封闭,扩展开放原则”,一点拙见,欢迎指正。
红街咖啡 2009-12-06
  • 打赏
  • 举报
回复
简单工厂用于处理一类对象,
抽象工厂用于处理这一类对象的关联对象,
所谓工厂就是方便调用者,
抽象工厂可以套一层简单工厂。
参考
参考1

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧