【第二周】学习总结——面向对象设计原则

用户头像
三尾鱼
关注
发布于: 2020 年 06 月 17 日



1、软件开发简史(从编程历史看编程的本质和未来)

讲解了软件编程的发展历史,比如打孔机,汇编语言,再到现在主流的面向对象语言。面向对象语言也将是以后未来继续发展的语言。

软件的本质是用计算机解决现实世界的问题。



2、面向对象编程的三要素(特性)

封装性

隐藏实现细节

定义访问接口



继承性

IS-A关系

HAS-A关系

复用父类代码



多态性 - 对象互换的魔法

后期绑定

向上转形

程序中的对象类型,在编译时不确定,执行时才确定

多态是面向对象的一个重要特性



3、框架VS工具

架构师用框架保证架构的落地

架构师用工具提高开发效率



4、面向对象设计的基本原则

开闭原则

对于扩展是开放的,对于修改是封闭的

意味着一个实体在不修改代码的情况下就可以做到行为的变更(扩展)



说明:

扩展能力是体现软件设计好坏的一个重要方面,没有扩展能力的设计会显得僵硬、脆弱、不可复用。



依赖倒置原则

高层模块不依赖低层模块,大家都依赖于抽象

抽象不依赖实现,而是实现依赖抽象



说明:

依赖倒置原则决定了依赖方向、开发顺序、高层主导低层、高层被复用



里氏替换原则

子类必须能够替换掉他们的基类,程序的行为和功能不变



说明:

只有遵循里氏替换原则,基于基类的代码的复用性才能保证

JDK中也有没遵循该原则的实现,如Properties -> HashTable



单一职责原则

又被称为“内聚性原则”,强调一个模块的组成元素之间的相关性

一个类只有一个引起它变化的原因



说明:

如果违法该原则,当一个职责发生变化时,可能会导致另一个职责受到影响,而且多个职责在一起会影响复用性。



接口分离原则

不应该强迫客户程序依赖他们不需要的方法,依赖应该建立在最小的接口上



使用说明:

有些场景无法做到或不方便做到单一职责原则时,可以使用接口分离原则将职责进行划分,这样客户程序可以选择最小的接口范围进行依赖



这些概念和理论在实践中或多或少都有感悟,但是工作中很少再去深究理论的东西,课程是一个梳理和学习的过程。

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

三尾鱼

关注

还未添加个人签名 2018.07.10 加入

还未添加个人简介

评论

发布
暂无评论
【第二周】学习总结——面向对象设计原则