大话设计模式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("特殊请求");
}
}
因此我们可以看到这种模式是很糟糕的,是万不得以才要用到的适配器模式,在设计时应该尽量设计好接口,我们就可以避免这种尴尬的模式了
现在就来介绍下设配器模式---
先来模拟一下场景:
公司设计了一个接口
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("特殊请求");
}
}
因此我们可以看到这种模式是很糟糕的,是万不得以才要用到的适配器模式,在设计时应该尽量设计好接口,我们就可以避免这种尴尬的模式了
相关文章推荐
- spring的依赖注入
- Spring中Bean的使用
- spring mvc 异常统一处理方式
- 用遗传算法走迷宫 [Java语言实现]
- Java中获取路径的方法
- Java实现复制一个目录下的所有文件
- java之装饰者模式
- java程序使用JDBC接口连接数据库
- Struts 2 的stream result用法
- 市长信箱邮件查询服务: 使用SpringBoot搭建基础
- spring mvc 关于乱码的几种解决方式
- java基础第五天
- Java基础知识总结(绝对经典)
- 利用for循环打印实心棱形和空心棱形
- spring <context:component-scan />及<mvc:annotation-driven />使用说明
- java中静态代码块
- Java的BoxLayout的水平支撑组件和垂直支撑组件
- Java大牛养成记(8)——何为servlet?
- Java.Swing.button绑定快捷键的3种办法
- Java 多线程总结(一)