设计模式是个很神奇的玩意,很早就像接触他。但是苦于自己水平不行,学业不精,一直没能如愿。现在终于开
始设计模式的了,真是爽啊。希望自己能一步一个脚印的鉴定的走下去。
今天先学的第一个设计模式(适配器)模式。需求是这样的。可能设计一个火箭仿真程序来利用你所一共得火箭的
信息,你发现已有的类可以实现客户提出的功能,但是这个类是和客户提出的借口是相对独立的,只是方法名不同而
已,这是,你就可以使用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;
}
}
本文详细介绍了适配器模式的应用场景、原理及其实现过程。通过一个具体的例子,展示了如何将一个类与现有接口进行适配,以实现代码复用和功能扩展。适配器模式使得原本不能兼容的类可以相互协作,极大地增强了代码的灵活性和可维护性。

被折叠的 条评论
为什么被折叠?



