模式笔记1
1.接口
? 作用:实现可插入性
? 包括:
??? 关联的可插入性
??? 调用的可插入性
?
2.抽象类
? 作用:对具体的抽象,提高复用及解耦
? 注意:代码向上层移动(即共同代码尽量写在抽象类里),以提高复用
?????????? 数据向下层移动(即数据存储尽量写在子类里),以减少占用资源
?
3. 里氏替换原则:如果类型T1有对象O1,类型T2有对象O2,在程序P所有涉及到01的对象换成02
?????????????????????? 时,程序P的行为没有变化,则T2为T1的子类型
?????????????????????? 即,一个软件实体,如果实使用基类的话,那也一定适用于子类,程序并不能
?????????????????????? 察觉出两者的区别
? 里氏替换原则在设计模式中的体现:
? (1)策略模式-如果有一组算法,那么就将每一个算法封装起来,让他们可以互换
?

策略模式
?
4.依赖传转原则:要针对于接口编程,不要针对于实现编程-应当使用接口及抽象类进行变量的声明、参量的类型声明、方法的返回类型声明
?????????? 传统的面向过程语言编写系统的设计,倾向于抽象模块依赖于具体模块,这样在具体业务实现逻辑改变时, 商业逻辑不可避免的需要更改

抽象模块依赖于具体模块
?
?
而依赖倒转之后,具体模块依赖抽象模块,高层业务实现逻辑,不必依赖于具体业务实现逻辑

依赖倒转