1.找出变化,独立出来
2.针对接口编程,而非针对实现编程
即针对超类型编程,根据实际情况执行到真正的行为,变量的声明通常是一个超类型或一个接口,具体实现此超类型的类所产生的对象都可指定给此变量
3.多用组合,少用继承
4.交互对象之间的松耦合
即相互关联的对象不会因为自身的改变而影响对方
(1)策略模式:定义了算法族,将其封装,让它们之间可以互相替换,且让算法的变化独立于使用算法的客户。
StrategyPattern总结:
a. 超类中定义子类中必须继承的变量或行为
b. 子类中有变化且不一定存在的行为抽象为一个接口
优点:
a. 可在运行时动态的改变行为
b. 当增加其它行为或类时无需对原有子类进行更改
适用实例:
游戏中角色(属性、技能):技能可能会改变
(2)观察者模式:在对象之间定义一对多的依赖,当一个对象改变状态时,依赖它的对象
ObservePattern(推式方式)推式方式:
将所有数据推送给观察者
拉式方式:
为观察者提供主题的引用,由观察者自行取数据
具体应用:
JavaBeans、GMI
网友评论