JAVA设计模式—适配器模式,装饰模式,代理模式异同

设计模式,其实是一种解决方法,JAVA作为一种面向对象的语言,对于所有的设计模式在实现上,总是少不了对接口的实现,对抽象类的继承,有时候似乎是为了去实现接口而去写接口,所以在这三种模式的说明代码中,我们都定义了接口这些东西,所以才有了现在的混淆。


先不厌其烦的介绍下这三种的设计模式的概念吧。


适配器模式,一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。


装饰器模式,原有的不能满足现有的需求,对原有的进行增强。


代理模式,同一个类而去调用另一个类的方法,不对这个方法进行直接操作。


适配器的特点在于兼容,从代码上的特点来说,适配类与原有的类具有相同的接口,并且持有新的目标对象。


就如同一个三孔转2孔的适配器一样,他有三孔的插头,可以插到三孔插座里,又有两孔的插座可以被2孔插头插入。


适配器模式是在于对原有3孔的改造。


在使用适配器模式的时候,我们必须同时持有原对象,适配对象,目标对象。。。。


装饰器模式特点在于增强,他的特点是被装饰类和所有的装饰类必须实现同一个接口,而且必须持有被装饰的对象,可以无限装饰。


代理模式的特点在于隔离,隔离调用类和被调用类的关系,通过一个代理类去调用。


总的来说就是如下三句话:


1 适配器模式是将一个类(a)通过某种方式转换成另一个类(b).

2 装饰模式是在一个原有类(a)的基础之上增加了某些新的功能变成另一个类(b).

3 代理模式是将一个类(a)转换成具体的操作类(b).


上一篇:Webpack构建library时的踩坑经历


下一篇:MapReduce框架Mapper和Reducer类源码分析