6. 适配器模式(Adapter)
模式所设计的角色有:
- 目标角色(Target): 这里是所期待得到的接口。此目标不可以是类。
- 源角色(Adaptee): 现有需要适配的具体类,要包装类中的方法。
- 适配器(Adapter): 把源接口转换成目标接口。适配器必须是具类。
例子: 请做一个Kittie的具体类,并实现miao(), catchRat(), run() , sleep()方法,在做一个接口Puppie,要求有 wao(), fetchBall(), run() , sleep()等方法。
假设现在John有个朋友想要一只Puppie,可是只找到一只Kittie, John需要使用适配器模式把Kittie适配成Puppie,让他朋友满意。请问John该怎么做。
代码:
/**
* 源角色(Adaptee)-------具体类
*
*/
public class Kittie {
public void miao(){}
public void catchRat(){}
public void run(){}
public void sleep(){}
}
/**
* 目标角色(Target)
*
*/
public interface Puppie {
void wao();
void fetchBall();
void run();
void sleep();
}
/**
* 适配器Adapter
*
*/
public class John extends Kittie implements Puppie {
public void fetchBall() {
this.catchRat();
}
public void wao() {
this.miao();
}
public void run(){
super.run();
}
public void sleep(){
super.sleep();
}
}
分享到:
相关推荐
java 汽车适配器(Adapter适配器模式) java 汽车适配器(Adapter适配器模式)
主要介绍了PHP设计模式:适配器模式Adapter,结合实例形式详细分析了PHP适配器模式Adapter基本概念、功能、原理、用法及操作注意事项,需要的朋友可以参考下
NULL 博文链接:https://hnzhoujunmei.iteye.com/blog/1032986
设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式...
设计模式C++学习之适配器模式(Adapter)
适配器模式(Adapter) demo
基于类的Adapter模式的一般结构如下:Adaptee类为Adapter的父类,Adaptee类为适配源,适配目标(接口)也是Adapter的父类;基于类的Adapter模式比较适合应用于Adapter想修改Adaptee的部分方法的情况。 基于对象的...
一些书籍也称适配器模式为缺省适配器模式(Default Adapter Pattern) 。 适配器模式主要分 为三类: 类适配器模式、 对象适配器模式、 接口适配器模式。 以生活中手机充电为例来讲解适配器模式, 手机本身并不能...
设计模式之适配器模式(Adapter Pattern) 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
适配器模式 设计模式 Adapter 还请各位大S指教
C#设计模式之适配器模式应用实例
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第7节:结构型模式Adapter 适配器模式
Head First 设计模式 (七) 适配器模式(Adapter pattern) C++实现
适配器模式是一种结构型设计模式,它允许接口不兼容的两个类可以协同工作。以下是该模式的要点: 1. **角色**: - **Target(目标接口)**:客户端期望调用的接口。 - **Adaptee(适配者)**:现有的、接口与目标...
介绍24设计模式中的Adapter模式,如果使用,实例讲解,等等
走进设计模式之——适配器模式 (Adapter) 对应代码
主要介绍了java设计模式之适配器模式Adapter的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
java设计模式之适配器模式,希望对大家有所帮助。
NULL 博文链接:https://toyota2006.iteye.com/blog/553012