您的位置:首页 > 编程语言 > Java开发

大话设计模式java版--适配器模式-关于不接口设计错误导致的处理方案

2016-05-22 22:39 453 查看
说到适配器模式,我就想起那时实习的工作,那时的我还不懂适配器是啥么东西,公司做的是javaweb ,,ssh框架的东西,上头分配的是适配层的东西(话说我到现在还搞不懂TAT)。。。。。貌似连接继承openstack,然后重写那些方法,,,当我学习到适配器模式时,我貌似懂了一些。。。

现在就来介绍下设配器模式---

先来模拟一下场景:

公司设计了一个接口

package com.jing.adapter;

/**
* 客户所期待的接口
* @author Administrator
*
*/
public interface Target {
public void request();
}


然后公司要扩展业务,要用到一个开源的类
package com.jing.adapter;
/**
* 一般情况下的与接口不同的类
* @author Administrator
*
*/
public class UnIdealAdaptee {
public void specificRequest(){
System.out.println("特殊请求");
}
}
这个开源的类的sqecificRequest()函数正是公司所需要的数据,和执行程序。
我们可以用实现的方法 UndealAdaptee去实现Target接口

public class UndealAdaptee implements Target这样的,,,,,但是这样就违反了开闭原则,因此适配器就诞生了。。

package com.jing.adapter;
/**
* 因为预留的接口不合适 因此又不想改动UnIdeaAdaptee类 ,因此又了适配器
* @author Administrator
*
*/
public class UnIdealAdapter implements Target{
private UnIdealAdaptee unIdeaAdaptee = new UnIdealAdaptee();
@Override
public void request() {
unIdeaAdaptee.specificRequest();
}

}


       

        //非理想状态下的 适配器模式

        Target unIdealAdapter = new UnIdealAdapter();

        unIdealAdapter.request();
这样就是适配器模式了。。。。

================================================================

现在我们来思考一下

如果理想状态的话,我们应该要这样设计我们的开源类。。

package com.jing.adapter;
/**
* 理想状态下的类 根据接口而设计的类
* @author Administrator
*
*/
public class IdealAdaptee implements Target{
public void request(){
System.out.println("特殊请求");
}
}


因此我们可以看到这种模式是很糟糕的,是万不得以才要用到的适配器模式,在设计时应该尽量设计好接口,我们就可以避免这种尴尬的模式了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: