架构师训练营 Week02 学习心得

发布于: 2020 年 06 月 17 日

一、面向对象编程

  1. 三要素:

  • 封装性

  • 继承性

  • 多态性

注:封装、继承、多态都不是面向对象独有的

  1. 面向对象编程与面向对象分析

面向对象编程:利用多态特性进行编程

面向对象分析:将客观世界(编程的业务领域)进行分析

  • 充血模型与贫血模型

  • 领域驱动设计DDD

  1. 面向对象的目的

强内聚,低耦合,使系统易扩展、更强壮、可移植、更简单

二、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中扩展手段,优先使用组合

发布于: 2020 年 06 月 17 日 阅读数: 15
用户头像

关注

还未添加个人签名 2018.04.17 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 Week02 学习心得