架构师训练营 - 第三周学习总结
设计模式总结
设计模式就是可重复使用的通用设计方案 OR 解决方案
重点是要记住设计模式是拿来解决什么问题的
如果你在工作中可以总结一些自己的解决方案,也可以为其命名,当然也可以分享给其他人,这就是属于你的新的设计模式
简单工厂模式(回顾开闭原则)
需要注意的是简单工厂会带来其他的问题,我们要通过变更种的简单工厂解决这些问题
最终的解决方案是通过配置文件传入需要创建的类,满足了所有的类的开闭原则(当然还有其他的问题)
单例模式
减少资源消耗,控制对象多用户使用行为
饿汉模式
静态方法获取对象
静态成员初始化对象
普通模式
静态成员存储对象
静态 synchronized 获取对象,在获取时判断对象是否为空,如果为空则返回
实现方式总结
静态成员存储对象
静态 synchronized 获取对象,在获取时判断对象是否为空,如果为空则返回
适配器模式
适配器模式就是要把当前已经存在的类或某些方案适配成当前定义的接口实现
类的适配器
继承适配对象,实现接口方法,在实现方法中调用父类已实现方法代码实现新接口功能
对象的适配器
实现接口,同时通过调用被适配成员的方法实现新接口方法功能
总结
组合优于继承,所以我们尽量应该使用组合的方式,即使用对象的适配器实现适配器模式
模板方法模式
类的行为模式之一,他一定是通过继承的方式实现的
在父类定义好功能的轮廓和骨架,在子类中负责具体的功能实现
抽象方法实现:继承父类,在父类中定义好抽象的模板方法,在子类中实现抽象模板方法
具体方法实现:定义方法,同时提供实现,子类可以覆盖也可以不覆盖
钩子方法实现:定义方法,同时提供空的实现,子类可以选择性实现,以便在特定时机满足某些功能
这几种实现可以结合起来使用,满足不用的需求
策略模式
在开发时针对策略接口进行统一开发,在运行时注入不同的策略实现,从而实现开闭原则,这就是策略模式
组合模式
组合模式是一种“对象的结构模式”
简单来说其实就是组合对象及被组合对象都实现同一个接口,当在调用到具体接口实现方法,如果是组合对象,会先先检查对象内的 被组合对象的集合 是否存在对象,如有则循环遍历调用对象实现方法,同时被组合对象在实现时也应检查自己的 被组合对象集合 内是否存在对象,如有则继续循环遍历调用,如此循环往复直至结束,这即为组合模式
装饰器模式
在父类或接口的基础上对其进行装饰或包装再执行,这就叫做装饰器模式
最重要的是你要装饰的类和你实现的是同一个接口,这样话就可以不停的迭代装饰,一直下去
在不改变对客户端接口的前提下扩展现有功能(即被包装过的类,接口不变,同时扩展功能)
Spring 的设计模式
太熟了,暂不做总结,后补
设计模式实例:HlVE-SQL 引擎
后补
评论