Bridge 桥接模式
最高级父类往子类扩展的时候有多个维度的扩展,这多个维度的扩展却又有交集
解决方式:
让其中一个维度从具体的中间 类 继承
让多个维度做排列组合,利用聚合。
在最高级父类里 包含 中间类的 申明
用聚合代替继承,会经常使用的手段
多个维度,排列组合用桥接模式
Adapter 适配器模式
JDBC-ODBC Bridge
java.io 设计模式也是适配器模式,inputStreamReader
(如果是decorator 模式 表示一端包着另外一端)
command 模式
让实现某方法,并且可以扩展该方法,实现方法的 Undo(撤销操作)
把命令设计成抽象类或者接口:
具体的一些其他方法类实现这个 命令接口
在对象类里头,用list<命令设计成抽象类或者接口> commands=new ArrayList<命令设计成抽象类或者接口>();
再来一个list 装着 已经执行的command 然后 方便记录, 方便后面写undo 的操作,最后的操作要先undo
写出对应的调用方法
main里头按顺序调用调用方法就可以了
State 模式
一个类的动作,是根据内部的状态不同而有不同的动作
申明一个状态类(抽象类或者接口都可以),写入一些特定状态类型的方法
申明一些具体状态类继承状态类并实现里面方法
main里头就看你是申明哪个具体的状态类了,调用自然也有对应不同的方法
Mediator 模式
中间者模式,调停者模式,用中间者连接所有人的通信关系,
在系统某个模块的内部,作为调停者调停类之间的关系或者对象之间的关系
Facade模式(门面)
就是处理复杂的内部业务逻辑用一个中间类来处理,其他对象只和这个中间类来“沟通”获取信息
struts2 的时候一个模块就一个Action 把所有的事情都做了,在Action里头判断要求用哪个方法处理请求