简单工厂模式

2019-11-03  本文已影响0人  eyeandroid

简单工厂模式,是设计模式中最为常见的模式之一。属于创建型模式,提供创建对象的最佳方式。工厂模式,顾名思义,一个模型,用来大规模的生产同类产品。该模式将对象的具体实例过程抽象化,并不关心具体的创建过程。通常,工厂模式被用来定义一个对象模型,之后,便可快速规模化实例化对象。

简单工厂模式的定义

提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口、抽象类,也可以是具体的类。

简单工厂不是一个标准的设计模式,但是它实在是太常用了,简单而又神奇,所以需要好好掌握它,就当是学习设计模式的热身运动吧。

简单工厂模式的实质:一个工厂类根据传入的参数,动态决定应该创建哪一类产品类(这些产品类均继承自一个父类或接口)实例。

一般来说,简单工厂模式分为三种:普通简单工厂模式、多方法简单工厂模式、静态方法简单工厂模式。

这三种模式从上到下逐步抽象,并且更具一般性。

简单工厂模式

极客教程会给大家提供不同编程语言对简单工厂模式的实现,具体请参考:

简单工厂模式的优缺点

简单工厂模式有以下优点

简单工厂模式有以下缺点

简单工厂相关模式对比

简单工厂和抽象工厂模式

简单工厂是用来选择实现的,可以选择任意接口的实现。一个简单工厂可以有多个用于选择并创建对象的方法,多个方法创建的对象可以有关系也可以没有关系。

抽象工厂模式是用来选择产品簇的实现的,也就是说一般抽象工厂里面有多个用于选择并创建对象的方法,但是这些方法所创建的对象之间通常是有关系的,这些被创建的对象通常是构成一个产品簇所需要的部件对象。

所以从某种意义上来说,简单工厂和抽象工厂是类似的,如果抽象工厂退化成为只有一个实现,不分层次,那么就相当于简单工厂了。

简单工厂和工厂方法模式

简单工厂和工厂方法模式也是非常类似的。

工厂方法的本质也是用来选择实现的,跟简单工厂的区别在于工厂方法是把选择具体实现的功能延迟到子类去实现。

如果把工厂方法中选择的实现放到父类直接实现,那就等同于简单工厂。

简单工厂和能创建对象实例的模式

简单工厂的本质是选择实现,所以它可以跟其他任何能够具体的创建对象实例的模式配合使用,比如:单例模式、原型模式、生成器模式等。

上一篇 下一篇

猜你喜欢

热点阅读