工厂模式和抽象工厂模式区别

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 可以 发现建造者模式 所有函数 加一起才能实现一个对象
   而抽象工厂或者简单工厂 一个函数就可以创造一个对象
   建造者模式是创造复杂对象时候的一种分解方式 

 

 

以上是关于工厂模式和抽象工厂模式区别的主要内容,如果未能解决你的问题,请参考以下文章

工厂模式和抽象工厂模式区别

简单工厂模式&工厂方法模式&抽象工厂模式的区别

设计模式系列-Builder模式,工厂方法模式和抽象工厂模式

简单工厂工厂方法抽象工厂区别

抽象工厂模式和原型模式之间的区别?

浅谈工厂和建造者模式