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

说到适配器模式,我就想起那时实习的工作,那时的我还不懂适配器是啥么东西,公司做的是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("特殊请求");
	}
}


因此我们可以看到这种模式是很糟糕的,是万不得以才要用到的适配器模式,在设计时应该尽量设计好接口,我们就可以避免这种尴尬的模式了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值