设计模式
策略模式:算法的切换
状态模式:状态的切换,但是状态和行为相关
命令模式:请求者和执行者解耦
模板模式:定义骨架,变化的部分设置成抽象方法给子类实现。
访问者模式:对象结构不变,不同访问人员不同操作。
装饰者模式:不改变原有类的基础上,添加新功能。(加功能后类型不变)
ps:添加的多个功能数量不定且可以有不同的组合。
代理模式:不改变原对象的行为,控制对实际调用对象的访问权限,隐藏原对象。
ps:接口一样,只是控制权限或加一些额外的职责或仅仅为了隐藏。
桥接模式:抽象部分与它的实现部分分离,使它们都可以独立地变化。
ps:双向允许多变。
中介模式:降低多个对象和类之间的通信复杂
ps:多对多的关系转化为一对多的关系
群聊通讯,相互影响
适配器模式:接口转换。
门面模式:门面高层次的接口,使得子系统更易于使用。
★策略模式与状态模式
相同:类图一样
不同:目的不同。
策略模式只是切换策略。
状态模式的具体状态类或者context中必须有状态迁移和行为的联系。
可以理解成:状态模式只是一种特殊的策略模式。
★策略模式与命令模式
相同:类图一样
不同:命令模式解耦接受者与执行者,就是说接收者设置成了抽象。
★策略模式与模板模式
模板模式:侧重定制流程