策略模式
概况:将类中易变化的部分分离出一个新类(分离责任),组合新分离的类,使的变化独立于本类(实现易复写)。
知识点
1:将责任(或变化)分离(封装)
2:针对接口编程,而非具体实现。(Job a1 = new 法师(√)法师 a2=new 法师(×),a1可变灵活,a )
3:善用组合和继承/(多用组合,少用继承)
观察者模式
概述:定义一个一对多的依赖,当一个对象发生改变多个对象会受到通知。
1:为交互对象之间的松耦合设计而努力(针对接口编程)
*Observable应该是消息的分发者而不一定是生产者
装饰者模式
概述:在不修改代码的情况下,动态赋予类新责任(组合),并保持类不变(继承)
1:类应该对扩展开发,对修改关闭。(组合)(按上图,若亚索要改变自己的speed,对扩展开发:动态增加改变speed代码(被buff装饰);对修改开发:在原类上增加定向修改speed代码)