天天看点

简单工厂模式:选择实现

简单工厂定义及本质

定义:提供一个创建对象实例的功能,而无须关心具体实现。被创建实例的类型可以是接口、抽象类,也可以是具体的类。
本质:选择合适的实现类。
结构示意图:           
简单工厂模式:选择实现

UML类图

简单工厂模式:选择实现

调用时序图

简单工厂模式:选择实现

优缺点

关于接口:

(1)接口定义:接口是一种特殊的抽象类,接口所有方法都是抽象方法,所有属性都是常量,没有任何方法实现。

(2)接口作用:接口用来定义实现类的外观,即实现类的行为定义,用来约束实现类的行为。

(3)接口思想:“封装隔离”,“接口是系统可插拔的保证”。

(4)接口与抽象类的选择:应优先选用接口;即要定义子类的行为,又要为子类提供公共功能时应选用抽象类。

工厂是跟接口与实现类在一起的,它处于封装体内部,与知道实现类没有关系。

工厂模式优点:

(1)封装隔离

封装:指“对被隔离体的行为封装”或“对被隔离体的职责的封装”;
    隔离:指外部调用和内部实现,即外部调用只能通过接口进行调用,而不需知道内部具体实现;           

(2)解耦

实现了客户端和具体实现类的解耦。客户端通过工厂获取所需要的接口对象。           

工厂模式缺点:

(1)增加客户端的复杂度:客户端需要知道工厂所提供的参数代表的具体功能和含义;

(2)不便于扩展子工厂:工厂类私有化了构造方法,只通过静态方法创建接口,不能再通过写子类改变接口的方法行为。

继续阅读