架构师训练营第三周总结

发布于: 22 小时前

转眼到了第三周,老师用了两周讲设计原则和设计模式,足以说明设计原则和设计模式的重要性,我甚至觉得这些知识的重要程度超过了有些工程师追求的高并发架构设计。

这周简单讲了几种设计模式:工厂模式,模版方法,组合和装饰器模式。并结合设计原则和设计模式详细介绍了flower,junit等几种框架的设计思想。模版方法我工作中用的比较多,主要拿来解决代码复用的问题,比较惭愧的是一直都不知道这也是一种设计模式。组合模式也不难,主要是通过在树形结构上递归实现dfs来达到针对每种不同类型的节点执行不同的操作(也就是多态)。装饰器模式以前我一直不是很理解应用场景,看了老师的ansi sql转hql的实现我恍然大悟,并且清楚了和组合模式的不同。组合模式节点之间是有上下游关系的,但是装饰器里先后顺序可以替换的。而且组合模式关注的结构里的每个节点执行相同操作,装饰器的目的是增强装饰对象的功能。

老师分享的flower设计很巧妙,但是除了上课时提到的事务问题无法解决之外,我比较好奇如果actor

是单线程的话万一阻塞住了是不是后面队列里所有的消息不是都阻塞住了么,是不是有一个超时的机制在里面。还有老师的ansi sql转hql实现给我印象十分深刻,之前我也尝试通过解析抽象语法树来实现hql的格式化,但是实现逻辑也是很复杂,不同逻辑团在一起,装饰器的实现真的是很巧妙。

学习了这么多设计模式我的收获很大,尤其是老师讲的架构师不是要写CURD,而是要写给程序员使用的框架代码,我最近工作中也有一些问题:任务调度系统中,不同类型任务的实现逻辑全都耦合在一起,扩展的时候违反了开闭原则,而且动了一块就会影响到很多功能违反了单一职责原则,我准备重构这些功能,并且打算尝试通过写一个框架的方式来实现。

用户头像

Geek_2dfa9a

关注

还未添加个人签名 2019.02.18 加入

还未添加个人简介

评论

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