架构 0 期 week2 学习总结

发布于: 2020 年 06 月 17 日
架构0期week2学习总结

不知不觉架构师训练营已经开始了两周了,而我作为一个架构小白,经历了这两周的训练之后,明显动手能力和思维能力都得到了极大的提升。那么现在让我来总结一下这周的重点吧(我认为的)。

编程语言的实质:用计算机来解决现实中的问题,将现实中的问题转化为计算机能处理的模型。编程语言的本质就是对这一模型的抽象(机器代码和汇编语言、非结构化的编程语言、结构化的程序设计语言、面向对象的程序设计)。模型的变化代表着编程语言的演变。编程的核心要素是人、客观业务领域、计算机。

什么是对象?对象具有三大特征:

  • 状态:表明每个对象都有自己的数据

  • 行为:表明每个对象都可以产生行为

  • 标识:表明每个对象都区别于其它的对象(唯一的地址)。

面向对象的三要素:

  • 封装性:隐藏实现细节,定义接口

  • 继承性:IS-A关系、HAS-A关系(组合)

  • 多态性:后期绑定、向上转形。

值得注意的是,上述三要素并不是面向对象编程语言才能实现,实际上,传统的面过过程语言也可以实现上述三要素,只是实现起来比较复杂而已。例如C语言。

面向对象编程更多的是利用其多态特性进行编程,面向对象分析就是将编程的业务领域进行对象分析并建模。

为什么有面向对象设计?

为了使系统强内聚、低耦合,从而实现:易扩展、更强壮、可移植、更简单。设计原则,23中设计模式和6大原则。

面向对象六大原则:

  1. 开闭原则(OCP):对于扩展是开放的,对于更改是封闭的。如何实现不修改而扩展呢?答案是抽象

  2. 依赖倒置原则(DIP):高层模块不能依赖底层模块,而是依赖于抽象,抽象不能依赖于实现,而是实现依赖抽象。也叫好莱坞原则。

  3. 里氏替换原则(LSP):一个正确的继承要符合里氏替换原则,简言之,子类必须能够替换掉它们的父类而不影响正常的功能。

  4. 单一职责原则(SRP):一个类,只能有一个引起它变化的原因。一个职责就是一个变化的原因。

课后案例:反应式编程框架Flower(消息驱动的反应式编程框架)的设计

1、程序运行步骤:

并发用户请求-->服务器(web端口-->web容器(为每个线程创建一个线程,县城内完成全部操作,返回响应)-->数据库连接池-->数据库连接-->数据库

2、Flower实现性能提升的基础是实现了异步,而其基础是Akka的Actor。

2020.6.17

用户头像

Up

关注

代码,思考,架构,阅读,旅行。 2018.11.02 加入

一起来进步吧,持续学习的小白!

评论

发布
暂无评论
架构0期week2学习总结