架构师训练营第二周 - 学习总结

用户头像
Lost Horizon
关注
发布于: 2020 年 06 月 15 日
架构师训练营第二周 - 学习总结

今周的课程从软件开发简史讲起,讲述了计算机程序设计语言从低级语言向高级语言发展的过程。随着抽象层次的提高,编程的关注点也从机器实现的细节转向需要解决的问题。从程序员需要关心程序与数据的物理保存地址以及指令的跳转;发展到由编译器处理这些物理细节,程序员关心程序的逻辑流程;更进一步,面向对象编程语言对现实世界的概念进行建模,让程序设计更接近待解决的问题域。抽象层次的提高和技术的发展让构建大型的复杂软件系统成为可能。



编程语言的演进也推动了软件开发方法的发展,面向对象分析与设计通过对问题领域的抽象,直接表达问题空间内的元素。也催生了领域驱动设计方法,系统由富有行为的对象组成,对象之间通过传递消息进行协作提供业务功能。



面向对象编程的三要素

  • 封装

* 隐藏实现细节(访问控制)

* 定义接口

  • 继承

* IS-A 关系

* HAS-A关系(组合)

  • 多态

* 后期绑定(虚函数)

* 向上转向(Up Casting)



面向对象设计的目的

强内聚、低耦合,从而使系统

  • 易扩展 - 易于增加新的功能

  • 更强壮 - 不容易被粗心的程序员破坏

  • 可移植 - 能够在多样的环境下运行

  • 更简单 - 容易理解、容易维护



面向对象设计的原则

  • 开/闭原则(OCP)

* 对扩展开放

* 对更改封闭

  • 依赖倒置原则(DIP)

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

* 抽象不能依赖实现,实现依赖抽象

  • Liskov替换原则(LSP)

* 子类型必须能替换掉他们的基类型

  • 单一只在原则(SRP)

* 一个模块的组成元素之间功能相关

* 一个类,只能有一个引起它变化的原因(一个职责是一个变化的原因)

  • 接口分离原则(ISP)

* 不应该强迫客户程序依赖它们不需要的方法



用户头像

Lost Horizon

关注

给写代码的人写代码 2017.10.17 加入

Clojure

评论

发布
暂无评论
架构师训练营第二周 - 学习总结