Java的适配器设计模式与方法覆写

1 篇文章 0 订阅
1 篇文章 0 订阅

在Java中,子类覆写父类方法时,方法返回值类型并不需要与父类完全一致,二者兼容即可。该原则同时适用于接口的实现及抽象方法的实现。在实现适配器设计模式时,该原则产生了很大的作用。


下面附上相关的代码和说明:

<span style="white-space:pre">	</span>public interface BaseHandler {
<span style="white-space:pre">		</span>Object handle(Object object);
<span style="white-space:pre">	</span>}
BaseHandler接口,处理一个Object对象生成一个Object对象。是一个通用处理器。


<span style="white-space:pre">	</span>public static void main(String[] args) {
<span style="white-space:pre">		</span>run(mBaseHandler, mObject);
<span style="white-space:pre">	</span>}
	
<span style="white-space:pre">	</span>public static void run(BaseHandler handler, Object object){
<span style="white-space:pre">		</span>System.out.println(handler.handle(object));
<span style="white-space:pre">	</span>}
程序入口,run方法调用一个BaseHandler处理一个Object对象。是一个通用方法。


<span style="white-space:pre">	</span>public class SpecificHandler {
<span style="white-space:pre">		</span>public Integer handle(Double num){
<span style="white-space:pre">		</span>return 0;
<span style="white-space:pre">		</span>}
<span style="white-space:pre">	</span>}
SpecificHandler,特定处理器类,用来处理特定情况的类。该类与BaseHandler具有相同的接口元素。这种类可以有多个,分别对对象进行不同的处理。


<span style="white-space:pre">	</span>public class Adapter implements BaseHandler{
	
<span style="white-space:pre">	</span>SpecificHandler mSpecificHandler;
	
<span style="white-space:pre">	</span>public Adapter(SpecificHandler specificHandler){
<span style="white-space:pre">		</span>this.mSpecificHandler = specificHandler;
<span style="white-space:pre">	</span>}
	
<span style="white-space:pre">	</span>@Override
<span style="white-space:pre">	</span>public Integer handle(Object object) {
<span style="white-space:pre">		</span>return this.mSpecificHandler.handle((Double)object);
<span style="white-space:pre">		</span>}
<span style="white-space:pre">	</span>}
Adapter适配器。在构造方法中接受所拥有的接口(SpecificHandler),并通过实现BaseHandler接口的方式生成可用于通用方法的接口(BaseHandler)。覆写BaseHandler的handle方法时,将返回值类型改为Integer,在handler方法中使用SpecificHandler的handle方法,来达到处理特定问题的目的。


Java中的适配器模式,就是将一个或多个处理具体问题的工具类,通过上述方式给予一个公用的接口,提高代码的可复用性。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值