架构师 0 期 03 周总结
学习了几种设计模式,印象比较深的是 组合模式、装饰器模式、模板方法模式、策略模式。
深刻认识到:设计模式是一种方法论,可以说是一种套路或者经验,你觉得这样组织代码比较好,完全可以应用到其他代码上,这就是设计模式。
要理解每种设计模式的特点以及应用场景,首先当然要理解设计模式是为了解决什么问题,其次理解设计模式是如何解决了这个问题的,也就是说,什么场景下该用什么设计模式。很多设计模式是在固定的场景下使用的 。
学习了一些实际例子所用到的设计模式和设计原则,最后一个例子中,SQL 转换器,在没有讲解使用什么设计模式时,我想到的是可以使用 工厂模式 + 策略模式,比如定义接口,由各个语法实现接口,然后通过工厂方法存储 语法->Impl 的map。
老师使用的是 :装饰器模式
我原来还在想,不管什么SQL 对所有语法都处理一遍会影响性能,但是听了解释才明白,影响很小的。系统的设计是没有对错的,架构师的职责是什么?定义好结构,让开发者更爽的写代码。比如装饰器模式,开发者对一个语法写一个装饰器,然后add 进去就可以了。
架构没有对错,要看是否符合应用场景,开发者是否想用你的结构。好的架构师离职时,开发者是不开心的,因为用架构师的架构开发的很爽。
PS:工作一年,我之前对架构师的理解是:高并发怎么处理,用队列、CDN 。。。现在发现我理解有误,每一个系统都有架构,这个结构不是使用的框架,可以理解为代码层次,交互。比如说,如果我想在controller 的调用前,调用后都记录一些数据,假如不适用Spring 的AOP,我会定义一个接口或者基类,所有的controller都需要实现我写的接口或者基类,这就是架构设计。
版权声明: 本文为 InfoQ 作者【喵呜的小哥哥】的原创文章。
原文链接:【http://xie.infoq.cn/article/58a6f9fff3c15224551e2f462】。未经作者许可,禁止转载。
评论