模板方法设计模式与策略模式
2017-08-17 00:00
218 查看
一、Java继承
缺点:
1、耦合性太强,容易破坏封装性,比如空实现之类的;2、不好多继承;
3、为了扩展会多重继承,导致代码复杂不好维护;也不知道动态扩展
优点
1、继承无需创建父类的对象;2、一般用于抽象方法的继承和实现,比如模板方法设计模式;
二、Java继承优点的利用——模板方法设计模式
1、SpringFramework里面的声明式事务处理;
有一个接口 PlatformTransactionManager,里面有三个抽象方法;getTransaction();commit();rollback();
有一个抽象类,AbstractPlatformTransactionManager,实现上面的接口;
里面的commit和rollback基本流程都已经实现,只有getTransacton()方法没有实现;调用的是dogetTransacton()抽象方法;
有多个实现子类DataSourceTransactionManager、HibernateTransactionManager等,继承上面的抽象类;
他们里面有自己对上面抽象方法dogetTransacton()的实现;
2、自定义类加载器的实现;(委托机制)
自定义类加载器,一般要继承ClassLoader,然后它里面有loadClass方法,但是这个方法的流程是委托机制的流程,我们不用管他,只需要把findClass方法给覆盖就可以了;这个方法主要就是把文件给传进来而已;3、面试题:聊聊对类,抽象类,接口的理解;
另外看《代理模式》那篇文章里面谈这三者的关系;三、Java继承缺点的补偿——策略模式(组合)
如果前提条件一样,那么优先使用对象组合而不是类继承参考;
https://my.oschina.net/u/3377232/blog/1518635 https://my.oschina.net/u/3377232/blog/1518632
四、集继承和组合与一身的一种设计模式——适配器(Adapt)模式
适配器模式也是一种包装模式适配器模式不适合在详细设计阶段使用它,它是一种补偿模式,专用来在系统后期扩展、修改时所用。
https://my.oschina.net/u/3377232/blog/1518617
当接口发生改变之后,没法正常调用接口,那就用适配器做一个转换了;比如中国电器用美国的电路肯定是不行的,所以需要自带一个适配器去做一个转换;然后才能用美国的电给中国买的电器充电;
相关文章推荐
- 设计模式之模板方法模式和策略模式
- Android 设计模式之(二)建造者,模板方法,策略模式
- TypeScript设计模式之策略、模板方法
- 设计模式之模板方法模式和策略模式
- Java进阶篇设计模式之十一 ---- 策略模式和模板方法模式
- “设计模式”学习之九:策略、模板方法与访问者(行为型)
- java设计模式(工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式、适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式,。 行为型模式,共十一种:策略模式、模板方法)
- Android设计模式之命令模式、策略模式、模板方法模式
- 单例模式、策略模式、模板方法设计模式探究
- 设计模式之模板方法和策略模式的区别(一)
- SPRING与设计模式--策略模式与模板方法模式
- 23种设计模式4--行为型模式(策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式)
- 23种设计模式4--行为型模式(策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式)
- 设计模式-策略模式和模板方法模式
- 设计模式-模板方法模式 策略模式
- java设计模式7.策略模式、模板方法模式、观察者模式
- 行为型设计模式之模板方法(TEMPLATE METHOD)模式 ,策略(Strategy )模式
- 设计模式之模板方法模式和策略模式
- 设计模式之行为型模式(责任链、命令、解释器、迭代式、仲裁者、备忘录、观察者、状态、策略、模板方法、访问者)
- 设计模式之模板方法和策略模式的区别(二)