写点什么

week2- 作业二,学习总结 - 框架设计

用户头像
关注
发布于: 2020 年 11 月 02 日

一、设计臭味

1、僵化性:很难对系统进行改动,因为每个改动都会迫使许多对系统其他部分的改动;

2、脆弱性:对系统的改动会导致系统中和改动的地方无关的许多地方出现问题;

3、牢固性:很难解开系统的纠结,使之成为一些可在其他系统中重用的组件;

4、粘滞性:做正确的事情比做错误的事情要困难;

5、不必要的复杂性:设计中包含有不具任何直接好处的基础结构;

6、不必要的重复:设计中包含有重复的结构,而该重复的结构本可以使用单一的抽象进行统一;

7、晦涩性:很难阅读、理解。没有很好的表现出意图;

二、面向对象编程

1、什么是计算机,什么是程序?

2、编程语言的实质:编程语言是一种"抽象"的机制,问题是对"谁"来抽象

领域问题---->模型<----->软件系统

3、编程方法的演进:汇编语言--->高级语言--->结构化程序---->OOP

4、OOP三要素:封装性、继承性、多态性

5、面向对象编程不是使用面向对象的程序语言进行编程,而是利用多态性进行编程;面向对象分析师将客观世界,即编程的业务领域进行对象分析

三、面向对象设计OOD五项基本原则

1、单一职责原则:一个类,只能有一个引用它的变化的原因;

2、开闭原则:对扩展开放,对修改封闭;

3、里氏替换原则:子类型必须能够替换它们的基类型;

4、接口隔离原则:不应该强迫客户程序依赖它们不需要的方法;

5、依赖倒置原则:高层模块不能依赖于底层模块,而是大家都依赖于抽象;抽象不能依赖于实现,而是实现依赖于抽象;

四、案例:反应式编程框架Flower的设计

1、反应式编程

1.1、反应式编程师一种编程思想、编程范式,是为了简化并发编程而实现的。和传统的处理方式相比,它能够基于数据流中的事件进行反应处理;

1.2、反应编程中,最基本的处理单元室事件流中的事件。流中的事件包括正常事件和异常事件;

2、Flower

2.1、项目地址: https://github.com/zhihuili/flower

2.2、Flower既是一个反应式编程架构,又是一个分布式微服务架构。Flowe框架使得开发者无需关注反应式编程细节,即可得到一个反应式系统;

2.3、即时响应,服务流程的调用者可以得到即时响应,无需扽等该整个Service流程执行完毕;Service之间无调用阻塞,即时响应。

2.4、回弹性,当service失效,服务器失效,系统能够进行自修复,依然保持响应,不会出现系统崩溃;

2.5、弹性,能够对调用负载压力做出响应,能够自动进行资源伸缩适应负载压力,能够根据系统负载能力控制请求的进入速度。

2.6、消息驱动,Service之间通过消息驱动,完成服务流程,Service之间没有任何调用耦合,唯一的耦合就是消息,前一个Service的返回值,必须是后一个Service的输入参数,Flower框架负责将前一个Service的返回值封装成一个消息,发送给后一个Servie。



用户头像

关注

还未添加个人签名 2019.02.26 加入

还未添加个人简介

评论

发布
暂无评论
week2- 作业二,学习总结-框架设计