桥接模式
桥接模式的目的是把抽象层次结构从其实现中分离出来,使其能够独立变更。

A,B均为抽象类,B以A的属性形式存在,Class B作为抽象对象并没有实现,只是提供了接口。B1,B2,B3作为ClassB的子类,实现父类方法,提供不同实现。此时对于ClassB使用方来说,是感知到不使用了哪个实现。ClassA中有一个run处理方法,默认调用ClassB中的方法。ClassA1,A2,A3 集成ClassA,还可以做一些自定义操作 (Demo)
桥接模式的优点:
分离抽象接口及其实现部分。
桥接模式有时类似于多继承方案,但是多继承方案违背了类的单一职责原则(即一个类只有一个变化的原因),复用性比较差,而且多继承结构中类的个数非常庞大,桥接模式是比多继承方案更好的解决方法。
桥接模式提高了系统的可扩充性,在两个变化维度中任意扩展一个维度,都不需要修改原有系统。
实现细节对客户透明,可以对用户隐藏实现细节。
命令模式
在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(Command Pattern)

Command 定义命令方法 也就是协议
ConcreteCommand 把协议跟接受者关联起来,通常会持有接收者,并调用接收者的功能来完成命令要执行的操作。
Receiver 接受者,实现命令要求实现的相应功能。
Invoker 要求命令对象执行请求,通常会持有命令对象,可以持有很多的命令对象
Client 创建要命令的对象,并且设置命令对象的接收者
网友评论