第二周 - 学习总结 - 框架设计原则
开闭原则OCP
原则:可横向扩展,不修改主体逻辑
实现:善用抽象,增加缓冲,降低耦合
依赖倒置原则DIP
用途:指导框架设置,合理的设计接口,实现层与层之间的松耦合
原则:高层抽象出来一个接口(接口仍然属于这一层),给底层去实现。
高层调用接口,底层实现接口
(感觉就像一个协议)
里氏替换原则LSP
用途:合理的使用继承
符合LSP条件:
子类具有父类的所有特性
子类的访问控制比父类更宽松
判断是否符合LSP:
在特定使用场景中,看能否用子类(A)替代父类(B),即 A is a B ?
例如:父类是马,子类是白马和小马。在人骑马这个场景下,白马是符合里氏替换 原则,而小马不符合。
解决LSP问题:
提取有共性的到基类
改继承为组合,将父类,改为子类的某个局部变量
单一职责原则SRP
用途:判断一个类的设计是否合理,关注一个类是否可拆解。
原则:类的职责需要单一
判断:当一个类文件太大(大于显示器屏幕显示),反思是否类功能不单一
认知:所以不要吝啬创造类以及查分类?
接口隔离原则ISP
用途:设计接口,封装类中只暴露给某一类使用者的方法,避免让使用者看到不需要的方法。关注不可拆解的类,将特定方法暴露给特定使用者。
实现:用多重继承,实现多个接口,不同的应用程序访问不同的接口。通过接口实现隔 离。
版权声明: 本文为 InfoQ 作者【莫森】的原创文章。
原文链接:【http://xie.infoq.cn/article/72f5f2e4f633db52006074d2f】。文章转载请联系作者。
评论