写点什么

架构师训练营第三周总结

用户头像
王鑫龙
关注
发布于: 2020 年 06 月 24 日

已经学了3周了,主要学习了架构师的理念、UML和设计模式,第三周主要讲设计模式。



架构师通过框架让架构落地,而做框架一定要有抽象思维,要符合面向对象的设计原则:开闭原则、依赖倒置原则、里氏替换原则、单一职责原则、接口分离原则。如何满足这些原则呢?主要是通过设计模式,设计模式就是一些解决设计问题的套路,经过前人的总结,命名为设计模式。



一个模式包含四个部分:

模式名称:名正则言顺,主要便于记忆与沟通。

待解问题:为达到设计目的,遇到什么问题?

解决方案:抽象解决方法,元素、关系、职责等的组合

结论:解决方案的利弊,对系统弹性、扩展性、可移植性的影响。



学习模式时要老老实实去研究模式适合的场景、解决方案和利弊等,实际应用中,以达到设计目的为中心灵活运用模式。



工厂模式

解决对具体实现的依赖,通过工厂提供对象,调用方只需要依赖实现的抽象(接口、抽象类)即可,减少耦合性,修改实现或增加实现,都不需要修改调用方。



要做一个排序程序,需要排序器,排序方法,排序对象,比较器等元素,排序方法名可固定用sort,排序器可抽象sorter,而不同的排序算法(冒泡排序、堆排序、快速排序。。。)实现不同的排序器,可扩展,排序对象要满足可排序,如实现compareTo()方法,可比较大小,还需要一个比较器,按字符顺序比较,还数值比较还是倒序与顺序,都通过比较器来决定。如此排序程序几乎可适应所有排序情况和对象。



有3个变化:

1.排序算法:每个排序算法都继承sorter。或者实现sorter接口。

2.排序对象:将排序对象可排序化。

3.比较器:用于对象元素的前后比较。

得到这3个实现,都可以使用工厂模式来获取。



通过使用工厂模式,可以将获取实现抽象出来,因此工厂模式也被很多其他模式所依赖与组合。



单例模式:

一个类只实现一个实例,便于统一管理,减少对象的创建与销毁。

单例尽量只提供服务,不保存状态。



适配器模式:

适配器即是转换,如原来的类不支持现在的需求,需要对其进行转换,增加相应的属性或方法,以适用于现在的需要。

如对List排序,需要增加size属性,get,set方法。那么增加一个类,增加这3个元素。

一种方法是继承原来的类,一种方法是组合原来的类。推荐使用组合方法。



模板方法模式:

定义类的行为模式,一般用继承方法实现。

父类定义必须的方法和属性,子类来实现。



策略模式:

一个过程有多种计算方法,用策略模式替换if/else,也可以在以后扩展,满足开闭原则。

模板方法模式一般用继承实现,策略模式一般用接口实现。



组合模式:

HTML的元素就是一种组合模式。

Windows窗体也是一种组合模式。



装饰器模式:

贴一段代码

第一段:

Moon里有一个对象Dream,Dream里有一个对象You。

第二段:

Dream里有一个对象Moon,Moon里有一个对象You。





其他:

使用配置文件来使框架可配置

Junit的使用



UML使架构可视化

框架使架构落地

设计模式使框架灵活



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

王鑫龙

关注

还未添加个人签名 2018.02.04 加入

还未添加个人简介

评论

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