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

来源:互联网 发布:shopnc 源码 编辑:程序博客网 时间:2024/05/17 09:12

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

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

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

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

已,这是,你就可以使用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);}@Overridepublic double getMass() {//复用代码return super.getMass();}@Overridepublic double getThrust() {//复用代码return super.getThrust();}@Overridepublic void setTim(double t) {this.time = t;}}


 

 

 

 
 
 
 
原创粉丝点击