设计模式——工厂模式

 一、使用场景

1)对象的创建需要一系列的步骤:创建某些组建的时候,可能需要获取位置、形状等信息,或者需要对某些参数进行初始化;

2)无法预知对象确切类别及其依赖关系:比如需要创建一辆奥迪A6,不清楚A6的类名及创建细节,但是你可以通过奥迪工厂,指定它生产A6这个型 ;

3)希望用户能扩展你的软件库或者框架的内部组件:一个验证码工具包,实现了文字验证码。 如果想扩展新的验证方式[滑动验证码],用户只需增加该验证方式及对应的实现方法,用户在使用时,通过工厂形式生产对应的验证方式;

图 扩展新的验证方式

4)解耦:将创建实例的工作从调用方中分离出,与调用方解耦。调用方不需要具体的创建过程,只管使用;

二、工厂模式

2.1 简单工厂模式

2.1.1 模式说明

定义一个创建对象的接口,将对象的创建和本身的业务逻辑分离。

图 简单工厂模式

2.1.2 代码实现

内部类实现简单工厂模式:

2.1.3 优缺点

优点:1)外界可不必管这些对象如何创建及如何组织的,明确了各自的职责和权利,有利于整个软件体系结构的优化;

缺点:1)违反了高内聚责任分配原则,将全部创建逻辑集中到一个工厂类中;2)它所能创建的类只能是事先考虑的,如果需要添加新的类,就需要改变工厂类;3)当具体类不断增多的时候,很难避免模块功能的蔓延,对系统的维护和扩展非常不利;

这种模式一般只在很简单的情况下应用,在实际开发中使用较少。

2.2 工厂方法模式

2.2.1 模式说明

将工厂抽象化,定义了一个创建对象的接口,每增加新的产品,只需增加该产品以及对应的工厂实现类。

2.2.2 代码实现

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月16日
下一篇 2022年8月16日

相关推荐