一、抽象工厂模式关键

1、抽象工厂接口类:提供全部抽象产品的创建接口

2、根据抽象产品分支出来有多少个产品簇决定有多少个具体工厂

3、每个具体工厂生产一个产品簇

 

二、适配器模式

1、有类适配器模式(继承)、对象适配器模式(调用或聚合)

2、注意JAVA不支持多重继承,所以JAVA中适配源超过 1个 可采取对象适配器模式

3、适配器模式关键:适配目标接口类:其中包含了用户所希望的所有接口,该类提供给适配器实现,

适配器类:该类实现适配器目标接口类的所有用户希望的接口,继承或者调用/集成适配源的接口方法

4、对象适配器原理:可把适配源类对象聚合到是适配器中作为适配器类的成员属性,当用户希望使用某些已经存在在适配源中的接口时,直接调用该对象的接口函数

 

三、外观模式

1、本质:把用户所希望与之打交道的所有类聚合到一个类中,该类即为外观类。

2、外观类中包含所有与用户打交道的类对象,因此用户仅需要与外观类打交道,避免直接与其他多个类打交道的复杂过程

3、外观类可给用户专门提供服务接口方法,在此方法中调用聚合在本类中的对象的方法完成用户希望的工作。

 

四、策略模式

1、抽象策略接口类:提供一个所有子类实现自己算法的接口(策略模式定义一系列的算法,将每个算法封装起来(在具体子类中),并且是他们之间可以互相替换)

2、具体策略类:实现抽象策略类接口,并实现定义的一系列算法中的某个具体算法,有时需要调用上下文相关方法完成任务

3、上下文类:客户类与策略类的 “传话筒” ,给策略类传递策略类要处理的数据参数,经常也把自己当做参数传递给策略类。上下文类中提供一个接口,用于调用具体策略子类中实现的算法接口。

4、具体策略子类和上下文类互相调用完成任务是使用策略模式进行设计的通常做法

 

五、命令模式

1、调用者:发起命令请求,把命令对象聚合为自己的成员属性,发起命令时调用命令对象的excute()方法(一般在该方法里调用命令接收者完成任务)

2、命令对象:系统有多少条命令就有多少个具体命令对象类,一般包含一个excute()方法

3、命令接收者对象:负责根据对应的命令完成相关的任务

4、命令模式一般分层机制:调用者调用命令对象,命令对象调用命令接收者对象

5、客户端中创建调用者对象、命令对象、命令接收者对象。步骤:先创建命令接收者对象,创建命令对像并且把第一步创建的命令接收者对象作为参数配置给命令对象,最后创建调用者对象并且把第二步创建的命令对象作为参数配置给调用者对象

 

六、中介者模式

1、中介者类:持有所有参与互动的类的对象,把他们集成为自己的成员属性。包含有所有参与类的注册方法,有多少个参与类就有多少个注册方法,注册方法中把参与类对象作为参数配置给自己的参与类成员属性

2、参与类:参与类中同时也持有中介者类对象,把中介者类作为自己的成员属性。在自己的构造函数中把中介者类配置给自己。同时调用中介者类注册方法把自己注册给中介者类

3、客户端类:需先创建中介者类,再创建参与类并把参中介者类配置给自己

 

七、观察者模式

1、抽象观察者接口类:所有具体的观察者类实现该类,该类一般提供一个Update()方法,用于在被观察者状态改变时调用,在其中完成相关的任务。

2、具体观察者类:实现抽象观察者类,主要是实现Update()方法,实现自己对被观察者感兴趣的数据变化时进行相关处理。

3、抽象被观察者类:一般要有观察者列表属性变量,所有观察者都要注册在该列表中。一般还要有三个方法,一个是往观察者列表添加观察者的方法,一个是设置当前状态的方法,一个是通知所有观察者(即遍历观察者列表调用其相关的Update())的方法。