架构师训练营第三周总结

发布于: 2020 年 06 月 22 日

本周老师首先介绍了一下他编写的开源项目Flower反应式编程框架,对于传统编程方式,在出现IO等待的时候都会出现线程等待的情况,浪费了系统本来就不多的线程资源,从而无法应对海量请求。反应式编程的理论基础是Actor模型,服务的调用方是一个Actor,然后通过内置的MailBox接收和发送请求,并且不会等待结果立即返回,当IO完成的时候,再往接收方的MailBox里丢消息,启用新的线程来处理返回结果;老师的框架的重点在于,把上述的调用流程封装在一个黑盒子里,并提供了一种配置文件方式定义服务调用流转的机制,同时对外提供一些常见处理场景的基类:如FlowerController等。调用者只需要继承这个基类,就可以享受到Actor的全部好处,不需要了解内部的调用流转。坏处是,对于交易类的场景,当数据在多个不同的线程间流转,很难做到强一致性。

然后老师主要介绍了设计模式的定义:每一种模式都描述了一种问题的通用解决方案。这种问题,在我们现实世界中,不停地出现,设计模式是一种可重复使用的解决方案。

然后老师又详细讲解了几种常用的设计模式:单例模式、适配器模式、模板方法模式、组合模式、装饰器模式。单例模式根据是否支持延迟加载,可以区分为:懒汉式、饿汉式和双重检测;适配器模式主要是用于变更或规范对外暴露的接口,使类以一种统一的方式对外提供操作入口;模板方法模式,主要用于业务流程固定,只是每个处理节点的执行逻辑需要定制的场景;组合模式则比较简单,主要用于循环遍历树形结构的场景,主要分为叶子和枝干两类,他们都实现某个接口,遍历时就可以很方便的从任何节点开始,统一执行流程;装饰器模式主要是用于对原始类进行能力增强的场景,有两种实现方式:如果原始类是基于接口实现,则装饰器也基于接口,否则装饰器继承原始类,装饰器与适配器模式的主要区别在于,装饰器是增强,而适配器是规约。

用户头像

一剑

关注

还未添加个人签名 2017.11.23 加入

还未添加个人简介

评论

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