模板方法设计模式与策略模式
模板方法设计模式与策略模式
new_chaos 发表于4个月前
模板方法设计模式与策略模式
  • 发表于 4个月前
  • 阅读 7
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

 一、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

当接口发生改变之后,没法正常调用接口,那就用适配器做一个转换了;比如中国电器用美国的电路肯定是不行的,所以需要自带一个适配器去做一个转换;然后才能用美国的电给中国买的电器充电;

 

共有 人打赏支持
粉丝 2
博文 223
码字总数 10501
×
new_chaos
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: