设计模式:工厂方法模式

Posted luoahong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式:工厂方法模式相关的知识,希望对你有一定的参考价值。

一、简单工厂模式

1、内容

不直接向客户端暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品类的实例

2、角色

1、工厂角色(Factory)

2、抽象产品角色(Product)

3、具体产品角色(Concrete Product)

3、优点

隐藏了对象创建的实现细节,客户端不需要修改代码

4、缺点

违反了单一职责原则,将创建逻辑几种到一个工厂类里,当添加新产品时,需要修改工厂类代码,违反了开闭原则

 

二、工厂方法模式

1、内容

定义一个用于创建对象的接口(工厂接口),让子类决定实例化哪一个产品类。

2、角色

1、抽象工厂角色(Creator)

2、具体工厂角色(Concrete Creator)

3、抽象产品角色(Product)

4、具体产品角色(Concrete Product)

3、优点

1、每个具体产品都对应一个具体工厂类,不需要修改工厂类代码

2、工厂类可以不知道它所创建的对象的类

3、隐藏了对象创建的实现细节

4、缺点

  每增加一个具体产品类,就必须增加一个相应的具体工厂类

5、适用场景

1、需要生产多种、大量复杂对象的时候

2、需要降低耦合度的时候

3、当系统中的产品种类需要经常扩展的时候

三、抽象工厂模式

1、内容

2、角色

3、优点

4、缺点

以上是关于设计模式:工厂方法模式的主要内容,如果未能解决你的问题,请参考以下文章

工厂模式 - 工厂方法模式

工厂设计模式

设计模式——抽象工厂模式

JAVA设计模式——工厂模式简单工厂模式工厂方法模式抽象工厂模式

设计模式之工厂模式详解和应用

设计模式之工厂方法模式