架构师训练营 - 第 3 周 - 总结

发布于: 2020 年 06 月 24 日

框架案例:反应式编程框架设计

---- 程序是如何运行又是如何崩溃的

这是一张图tomcat的运行示意图,其实生活中我们也遇到这样的场景,典型的场景就是银行排队,早期每个窗口都排着长长的队伍,那时真的是拿人头在排队,到后来的是叫号系统,体检就好多了,反应式编程就是这个叫号系统,没排到你,你尽可以找找有没有航空座椅坐下来做你的事情,等叫到你了,就是你的showtime了。

设计模式

设计模式就是行业套路

模式的四个部分

  • 模式的名称

少量字组成,有助于表达我们的设计

  • 待解决的问题

描述何时需要运用这种模式,以及应用模式的环境

  • 解决方案

描述了组成设计的元素(类和对象)、它们的关系、职责以及合作。但这种解决方案是抽象的。

  • 结论

运用这种方案所带来的利弊。主要是指它对系统的弹性、扩展性、和可移植性的影响。

设计模式的分类

  • 从功能分

  • 创建模式

对类实例化过程的抽象

  • 结构模式

将类或者对象结合在一起形成更大的结构

  • 行为模式

对在不同的对象之间划分责任和算法的抽象化。

  • 从方式分

  • 类模式

以继承的方式实现模式,静态的。(不建议)

  • 对象模式

以组合的方式实现模式,动态的

单例模式

对外隐藏构造函数

两种实现方式:

类提前静态创建private变量

调用时没有实例时临时加锁创建

适配器模式

类的适配(不建议,违反里氏替换原则)

例:继承ArrayList前实现Sortable接口

对象的适配

例:组合 list 并实现Sortable接口

JUnit框架中的设计模式

  • 策略模式

  • 继承TestCase

  • 实现框架约定的方法、用例框架定义的注解对测试方法进行标注

  • 核心方法 runBare(),这是一个模板方法

  • 调用初始化方法:setUp()

  • 调用测试方法: testXXX()

  • 调用清除环境方法:tearDown()

  • eclipse 插件也是使用了策略模式

  • 模板方法模式(Template Methid)

在基类方法中定义了类方法的执行过程,而方法是实现是在子类中完成

  • 是扩展功能的最基本模式之一

  • 它是一种“类的行为模式”

  • 它是通过“继承”的方法来实现扩展

  • 基类负责算法的轮廓和骨架

  • 子类负责算法的具体实现

  • 组合VS继承

  • 基于“继承”的模板方法比“组合”更加容易实现

  • 在很多情况下,可以适当使用这种模式

  • 形式

  • 抽象方法

  • protected abstract void step1();

  • 强制子类实现该步骤

  • 具体方法

  • protected void doSomething(){...}

  • 子类根据自己的情况决定是否需要覆盖

  • 钩子方法

  • protected void setUp(){}

  • 空实现 (缺省适配器模式)

  • 子类选择性覆盖

  • 策略模式与模板方法的结合

组合模式

  • 是一种“对象的结构模式”

  • TestSuite

  • 用树的组合模式遍历树的所有节点(不可用递归)

装饰器模式

提到装饰器模式,不免心生疑问:它跟代理模式有什么区别呢?几番百度之后,大概得到的答案是,代理模式对使用者屏蔽了目标实现,而装饰器模式是使用者指定某个装饰器去装饰某个目标,两者都是使用者设定的。

用户头像

Dawn

关注

还未添加个人签名 2018.07.04 加入

还未添加个人简介

评论

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