架构师训练营 Week02 学习心得
一、面向对象编程
三要素:
封装性
继承性
多态性
注:封装、继承、多态都不是面向对象独有的
面向对象编程与面向对象分析
面向对象编程:利用多态特性进行编程
面向对象分析:将客观世界(编程的业务领域)进行分析
充血模型与贫血模型
领域驱动设计DDD
面向对象的目的
强内聚,低耦合,使系统易扩展、更强壮、可移植、更简单
二、OOD设计原则
开/闭原则(OCP)
1)对扩展开放,对更改封闭
2)不需要修改软件实体(类、模块、函数等),就应该实现功能的扩展
3)实现不修改而扩展的方法:抽象
依赖倒置原则(DIP)
1)高层模块不能依赖底层模块,而是大家都依赖于抽象
2)抽象不能以来实现,而是实现依赖抽象
3)倒置了什么?
模块或包的依赖关系
开发顺序和职责
4)也叫“好莱坞原则”:Don't call me, I'll call you
Liskov替换原则(LSP)
子类必须能够替换它的父类,凡是使用基类的地方一定也适用于其子类
不要破坏继承关系
单一职责原则(SRP)/内聚性原则
一个类只能有一个引起它的变化的原因
接口分离原则(ISP)
不应该强迫客户程序依赖它们不需要的方法
ISP和SRP的关系:
1)相关的,都和内聚性有关
2)SRP指出应该如何设计一个类
3)ISP指出应该如何设计一个接口
几点感悟
正确认识面向对象编程:
很多程序员误以为自己使用了面向对象,但实际上只是使用了面向对象语言编程,而不是面向对象编程
框架调用应用程序代码,应用程序调用工具junit是框架,log4j是工具
集成和组合是OOP的2中扩展手段,优先使用组合
版权声明: 本文为 InfoQ 作者【莹】的原创文章。
原文链接:【http://xie.infoq.cn/article/88035532aac73f5622fdf48f8】。文章转载请联系作者。
评论