工厂模式和抽象工厂模式区别
Posted 于贰哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工厂模式和抽象工厂模式区别相关的知识,希望对你有一定的参考价值。
1、工厂模式定义产品接口即可,工厂中生产得是产品对象
2、抽象工厂模式需要定义产品接口,工厂抽象类。工厂生产得是具体工厂对象。
3、工厂为啥使用抽象类而不使用接口:接口可以实现多个,而继承是单继承。
例如:常见工厂,小米,华为,长城,他们都是一个整体,但是不可能出现一个小米华为长城的综合体。而使用抽象类,就是利用单继承的特性避免这种问题。
建造者模式和抽象工厂的区别
1 建造者模式是把对象的创建分散开来,比如几个函数
比如
interface builderDemo
void bulidHead();
void bulidBody();
void bulidFoot();
然后 由具体类实现,实现创建对象的分解
2 抽象工厂 相对于普通工厂 或者简单工厂 普通工厂的工厂实现是一个产品 抽象工厂的工厂实现是多个产品族 (一个产品族包含几个不同的产品的某一系列) 比如 抽象工厂的一个举例 实现的是baoma的各个车系 用到A B C 部件 ,根据价格档次划分 A B C 又分为 A1 A2 A3 , B1 B2 B3 ,C1 C2 C3 抽象工厂的一个抽象的实现
abstract class createBaoma
abstract Baoma320 createBaoma320(); // 具体实现 使用 A1 B1 C1
abstract Baoma520 createBaoma520(); // 具体实现 使用 A2 B2 C2
abstract Baoma740 createBaoma740(); // 具体实现 使用 A3 B3 C3
对比 1 2 可以 发现建造者模式 所有函数 加一起才能实现一个对象
而抽象工厂或者简单工厂 一个函数就可以创造一个对象
建造者模式是创造复杂对象时候的一种分解方式
以上是关于工厂模式和抽象工厂模式区别的主要内容,如果未能解决你的问题,请参考以下文章