设计模式-适配器(Adaper)模式
来源:互联网 发布:知识产权 淘宝 编辑:程序博客网 时间:2024/04/26 10:57
适配器模式中分为类适配器和对象适配器。
类适配器
继承手头现在有的类,通过调用父类(现有类)的方法来实现客户端需要的接口。
客户端想要的接口:
package com.oozinoz.simulation;/** * 火箭模拟 * 这是一个客户端已经使用的接口 */public interface RocketSim {double getMass();double getThrust();void setSimTime(double t);}手头现有的实现:
package com.oozinoz.physical;/** * 手头上已经有的火箭实现 */public class PhysicalRocket {double burnArea;double burnRate;double fuelMass;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(){//一些具体实现...return 0d;}public double getMass(double t){//...return 0d;}public double getThrust(double t){//...return 0d;}}
通过继承的方式来适配:
package com.oozinoz.firework;import com.oozinoz.physical.PhysicalRocket;import com.oozinoz.simulation.RocketSim;/** * 适配器 * 继承现有类,实现客户端接口,将现有实现包装(适配)成客户端想要调用的接口 */public class OozinozRocket extends PhysicalRocket implements RocketSim {private double time;public OozinozRocket(double burnArea, double burnRate, double fuelMass,double totalMass) {super(burnArea,burnRate,fuelMass,totalMass);}@Overridepublic double getMass() {return getMass(time);}@Overridepublic double getThrust() {return getThrust(time);}@Overridepublic void setSimTime(double t) {this.time = t;}}
对象适配器
对象适配器和类适配器不同的是,不通过继承的方式来调用现有的实现,而是通过包装一个现有类对象,调用这个对象的方法来使用现有的实现。
package com.oozinoz.simulation;import com.oozinoz.physical.PhysicalRocket;public class OozinozRocket implements RocketSim{private double time;private PhysicalRocket rocket;public OozinozRocket(double burnArea, double burnRate, double fuelMass,double totalMass) {rocket = new PhysicalRocket(burnArea, burnRate, fuelMass, totalMass);}@Overridepublic double getMass() {return rocket.getMass(time);}@Overridepublic double getThrust() {return rocket.getThrust(time);}@Overridepublic void setSimTime(double t) {this.time = t;}}
Java的IO流API是最好的适配器实现,适配器模式和装饰模式比较相似。适配器模式侧重于适配新的接口,而装饰模式则侧重于对已有对象的扩展。
0 0
- 设计模式-适配器(Adaper)模式
- 【设计模式】结构型模式——适配器模式(Adaper Pattern)
- 《Java与模式》: 22 适配器(Adaper)模式
- 设计模式:适配器模式
- 设计模式------适配器模式
- 设计模式:适配器模式
- 设计模式---适配器模式
- 设计模式 适配器模式
- 设计模式 - 适配器模式
- 设计模式--适配器模式
- 设计模式-适配器模式
- 设计模式------适配器模式
- 设计模式---适配器模式
- 设计模式- 适配器模式
- 设计模式 - 适配器模式
- 设计模式:适配器模式
- 适配器模式--设计模式
- 设计模式 - 适配器模式
- C++中string总结
- Dalvik虚拟机与java虚拟机的异同
- hdu 4825
- Pat(Advanced Level)Practice--1081(Rational Sum)
- leetcode做题总结,题目Best Time to Buy and Sell Stock 2012/10/30
- 设计模式-适配器(Adaper)模式
- 关于dup和dup2函数的重定向与还原
- HDU 2163 Palindromes
- 集合(Map练习)
- 最短路径Ⅰ—Dijkstra算法
- Java多态
- JSP基础语法(章节摘要)
- 1407282112-hd-Max Num.cpp
- 集合(TreeMap练习)