架构师训练营第三周总结

发布于: 2020 年 06 月 24 日

本周印象深刻的几个点

反应式编程

  • 基于Akka的反应式编程框架:Flower

Flower采用了反应式编程的思想,能够使用更少的服务端线响应更多的客户端连接

这种方式一方面可以扩大系统的吞吐量,另一方面可以节省服务端线程切换的开销(因为线程少),在部分场景下,也可以提高服务端的性能。

  • 反应式编程的实现方式

不要自己重复造轮子,目前已经有比较成熟的第三方组件,比如Akka。我们要做的是在第三方组件上封装自己的框架,去适应自身项目的需要。

  • 反应式编程存在的坑

所有涉及到IO的地方都需要改成异步调用,否则会将线程阻塞的问题放大。

模板方法与策略模式

模板方法与策略模式都可以用来解决同一类问题,就是分离高层算法和底层实现的细节。

模板方法的实现思路是基于对象继承,在父类中定义算法,由子类实现细节。

优点:封装不变的部分,扩展可变部分,符合开闭原则。

缺点:子类与父类强绑定,某种程度上违反了依赖倒置原则(实现应该依赖于抽象)。

策略模式用另外一种思路来解决相同的问,即通过依赖倒置,倒置了算法与实现的关系,使得实与算法之间解耦。

策略模式也有自己的缺点:增加了代码的复杂性,引入了更多类

组合模式与装饰模式

组合模式和装饰模式的类图很像,咋一看还以为是同一种模式,但事实上它们是用来解不同场景的问题。

组合模式:用来方便的处理树状结构的对象,同时组合模式不会改变对象的方法调用。

装饰模式:在不修改现有对象的情况下为其添加新的职责(对其进行装饰),装饰模式会对被装饰对象的方法调用进行修饰,但在修饰的同时不会改变被修饰方法的内容。

两种模式的关键差异点,在于Component类的子类Composite(组合模式)/Decorator(装饰模式)如何处于与Component类的依赖。

Composite(组合模式)类会保存Component类的集合(List),在执行时遍历集合中所有的对象。

Decorator(装饰模式)类只保存一个Component类对象,并在执行时对Component类的方法调用进行修饰。

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

W_T

关注

还未添加个人签名 2018.01.09 加入

还未添加个人简介

评论

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