项目中使用到的设计模式

https://blog.csdn.net/luwei42768/article/details/54882393

1、模板方法模式 
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,如JdbcTemplate 
2、代理 
spring的Proxy模式在aop中有体现 
3、观察者 
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 
spring中Observer模式常用的地方是listener的实现。如ApplicationListener。 
4、适配器(Adapter ) 
MethodBeforeAdviceAdapter类 
5、策略模式 
使用了java的继承和多态 
案例1:加减法计算器,定义一个计算类接口,加法和减法类都实现它,加的时候传入加法对象。 
案例2:导出excel,pdf,word时,分别创建不同的对象 
简单理解:执行多个事情时,创建多个对象 
6、单例模式 
解决一个全局使用的类频繁的创建与销毁 
7、工厂模式 
分为三种:简单工厂,工厂方法,抽象工厂 
根据“需求”生产“产品”,解耦“需求”“工厂”和“产品”。

简单工厂:通过构造时传入的标识来生产产品,不同产品都在同一个工厂中生产,每新增加一种产品,需要改工厂类,来判断,这种判断会随着产品的增加而增加,给扩展和维护带来麻烦 
简单工厂项目案例:根据传入的 不同(比如1对应支付流水,2 对应订单流水),生成不同类型的流水号

工厂方法:(使一个类的使用延迟到子类) 
其中的工厂类根据传入的A.class类型,反射出实例。 
产品接口,产品类A,产品类B,工厂类可以生成不同的产品类对象,如果要随着产品的增加而增加,工厂类不变,只需新增一个产品类C即可。 
项目案例:邮件服务器,有三种协议,POP3,IMAP,HTTP,把这三种做完产品类,在定义个工厂方法

抽象工厂:一个工厂生产多个产品,它们是一个产品族,不同的产品族的产品派生于不同的抽象产品

猜你喜欢

转载自blog.csdn.net/liyanlei5858/article/details/82749632