简单工厂模式、工厂方法模式和抽象工厂模式之间的异同

[注:纯属个人理解,如有错误请大家指正]

相同之处:

AbstractProduct ap = Factroy.createClass();

1.都是利用工厂类(工厂子类)来创建对应的类对abastractProduct进行实例化操作。

不同之处:

简单工厂模式仅一个工厂类负责处理创建productA和productB;

工厂方法模式的工厂类继承了工厂的接口并实现工厂接口的方式,可以有多个继承接口的子类,但是每个子类仅创建对应的product实例;

抽象工厂模式和工厂方法模式类似,不同之处是抽象工厂模式不是接口,而是abstract class。

纠正以上错误:

工厂方法创建一般只有一个方法,创建一种产品。
抽象工厂一般有多个方法,创建一系列产品。

 

目的不一样
工厂方法创建 "一种" 产品,他的着重点在于"怎么创建",也就是说如果你开发,你的大量代码很可能围绕着这种产品的构造,初始化这些细节上面。也因为如此,类似的产品之间有很多可以复用的特征,所以会和模版方法相随。

抽象工厂需要创建一些列产品,着重点在于"创建哪些"产品上,也就是说,如果你开发,你的主要任务是划分不同差异的产品线,并且尽量保持每条产品线接口一致,从而可以从同一个抽象工厂继承。

转载于:https://www.cnblogs.com/Tim_Liu/archive/2010/09/03/1817191.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件工程设计模式是软件开发中常用的解决问题的方法,它们可以被归类为创建型模式、结构型模式和行为型模式。下面是它们之间异同: 1. 创建型模式:这些模式关注对象的创建过程,包括单例模式、工厂模式、抽象工厂模式、建造者模式和原型模式。 2. 结构型模式:这些模式关注如何组合对象来形成更大的结构,包括适配器模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式和代理模式。 3. 行为型模式:这些模式关注对象之间的交互和职责分配,包括观察者模式、迭代器模式、策略模式、命令模式、状态模式、职责链模式、访问者模式、备忘录模式和中介者模式。 它们之间异同点如下: 1. 目的不同:不同类型的设计模式解决不同的问题,创建型模式解决对象创建的问题,结构型模式解决组合对象的问题,行为型模式解决对象之间的交互和职责分配的问题。 2. 实现方式不同:不同类型的设计模式采用不同的实现方式来解决问题,如单例模式使用静态变量来保证只有一个实例被创建,适配器模式使用接口来实现适配功能等。 3. 使用场景不同:不同类型的设计模式适用于不同的场景,如工厂模式适用于需要根据参数来创建不同类型对象的场景,装饰器模式适用于需要动态增加或删除对象功能的场景等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值