Java设计模式之------(Adapter)适配器模式实现

设计模式是个很神奇的玩意,很早就像接触他。但是苦于自己水平不行,学业不精,一直没能如愿。现在终于开

始设计模式的了,真是爽啊。希望自己能一步一个脚印的鉴定的走下去。

今天先学的第一个设计模式(适配器)模式。需求是这样的。可能设计一个火箭仿真程序来利用你所一共得火箭的

信息,你发现已有的类可以实现客户提出的功能,但是这个类是和客户提出的借口是相对独立的,只是方法名不同而

已,这是,你就可以使用Adapter模式。

首先贴出来假设客户提出的接口

package com.bird.inter; /** * 用户需要接口要求 * @author Bird * */ public interface RocketSim { public double getMass(); public double getThrust(); public void setTim(double t); }


开发者手头有一个程序完成了客户需要的部分功能,但是相对于客户的接口是独立的,只是方法名称不同,但是里

面有很复杂的业务逻辑,需要复用,但是又需要满足客户提交的接口的请求。下面把这个类贴上

package com.bird.exit; /** * 需要复用的类 * @author Bird * */ public class PhysicalRocket{ @SuppressWarnings("unused") private double burnArea; private double burnRate; @SuppressWarnings("unused") private double fuelMass; private double totalMass; public PhysicalRocket(double burnArea, double burnRate, double fuelMass, double totalMass) { this.burnArea = burnArea; this.burnRate = burnRate; this.fuelMass = fuelMass; this.totalMass = totalMass; } public double getBurnTime(){ //假设这里有复杂的代码需要重用 System.out.println("调用PhysicalRocket类的getBurnTime方法"); return 0; } public double getMass(){ //假设这里有复杂的代码需要重用 System.out.println("调用PhysicalRocket类的getMass方法"); return totalMass; } public double getThrust(){ //假设这里有复杂的代码需要重用 System.out.println("调用PhysicalRocket类的getThrust方法"); return burnRate; } }

然后为了实现代码和复用和完成用户的需求,我们使用Adapter设计模式,继承原来的类,然后实现接口,直接调用父类的方法就算完事,成功的实现了代码的复用,这就是Adapter设计模式

package com.bird.newClass; import com.bird.exit.PhysicalRocket; import com.bird.inter.RocketSim; /** * 新类,实现接口继承需要复用的类 * @author Administrator * */ public class OozinozRocket extends PhysicalRocket implements RocketSim { @SuppressWarnings("unused") private double time; public OozinozRocket(double burnArea, double burnRate, double fuelMass, double totalMass) { super(burnArea, burnRate, fuelMass, totalMass); } @Override public double getMass() { //复用代码 return super.getMass(); } @Override public double getThrust() { //复用代码 return super.getThrust(); } @Override public void setTim(double t) { this.time = t; } }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值