您的位置:首页 > 其它

模板方法设计模式与策略模式

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

当接口发生改变之后,没法正常调用接口,那就用适配器做一个转换了;比如中国电器用美国的电路肯定是不行的,所以需要自带一个适配器去做一个转换;然后才能用美国的电给中国买的电器充电;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐