适配器模式(Adapter Pattern):
适配器模式将一个类的接口,转化成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。
现实生活中有很多适配器的例子,例如:各种电源、各种USB连接线...
这里我们使用狼变成羊的例子,也就是披着羊皮的狼,其中的羊皮就是适配器,要不狼混不到羊群
实践步骤:
1>我们新建一个通用接口(Sheep)
package com.kaishengit.adapter;
public interface Sheep {
public void run();//跑
public void ho();//叫
}
2>我们新建一个适配器(SheepAdapter):实现Sheep接口
package com.kaishengit.adapter;
public class SheepAdapter implements Sheep {
private Wolf wolf;
/**
* 传进被适配对象(狼)
* @param wolf
*/
public SheepAdapter(Wolf wolf){
this.wolf = wolf;
}
@Override
public void ho() {
wolf.ho();
}
@Override
public void run() {
wolf.run();
}
}
3>我们新建一个被适配对象:狼(Wolf)
package com.kaishengit.adapter;
public class Wolf {
public void run() {
System.out.println("狼跑");
}
public void ho(){
System.out.println("狼嚎");
}
}
4>最后我们测试一下
package com.kaishengit.adapter;
public class Test {
public static void main(String[] args) {
//狼
Wolf wolf = new Wolf();
//披着羊皮的狼
Sheep sheep = new SheepAdapter(wolf);
sheep.run();
sheep.ho();
}
}
运行结果:
--------------------
狼跑
狼嚎
--------------------
但是被适配对象的本质没有变
过程:
1>客户通过目标接口调用适配器方法对适配器发出请求
2>适配器使用被适配者接口把请求转化成被适配者的一个或多个调用接口
3>客户接收到调用结果,但并未察觉这一切是适配器在起转换作用
关于适配器模式:
1>当需要使用一个现有的类而其接口不符合你的要求时,就需要使用适配器模式
2>适配器模式将一个对象包装起来改变其接口,装饰者模式将一个对象包装起来增加新的行为戒责任
3>适配器的意图是将接口转换为不同的接口
-----end-----
分享到:
相关推荐
设计模式之适配器模式(Adapter Pattern) 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
适配器模式(Adapter Pattern) 是作为两个不兼容接口之间的桥梁, 这种类型的设计模式属于结构型模式。 一些书籍也称适配器模式为缺省适配器模式(Default Adapter Pattern) 。 适配器模式主要分 为三类: 类...
.NET设计模式(8):适配器模式(AdapterPattern)
适配器模式是一种结构型设计模式,它允许接口不兼容的两个类可以协同工作。以下是该模式的要点: 1. **角色**: - **Target(目标接口)**:客户端期望调用的接口。 - **Adaptee(适配者)**:现有的、接口与目标...
Head First 设计模式 (七) 适配器模式(Adapter pattern) C++实现
“[设计模式]在实用环境下特别有用,因为它分类描述了一组设计良好,表达清楚的面向对象软件设计模式。整个设计模式领域还很新,本书的四位作者也许已占据了这个领域造诣最深的专家中的半数,因而他们定义模式的方法...
java设计模式之适配器模式,希望对大家有所帮助。
本文实例讲述了Python设计模式之适配器模式原理与用法。分享给大家供大家参考,具体如下: 适配器模式(Adapter Pattern):将一个类的接口转换成为客户希望的另外一个接口. 下面是一个适配器模式的demo: #!/usr/bin/...
23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含较详细注释。另外附上“设计模式迷你手册.chm” 供参考。 注:项目在 VS2008 下使用。 创建型: 抽象工厂模式(Abstract Factory) ...
NULL 博文链接:https://lym6520.iteye.com/blog/713094
适配器模式(Adapter Pattern) 桥接模式(Bridge Pattern) 组合模式(Composite Pattern) 装饰者模式(Decorator Pattern) 外观模式(Facade Pattern) 享元模式(Flyweight Pattern) ...
创建型模式 (100%) 设计模式面面观(8):创建型模式总结 (100%) 设计模式面面观(9):适配器模式(Adapter Pattern)-结构型模式 (100%) 设计模式面面观(10):桥接模式(Bridge Pattern)-结构型模式 ...
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个...
用c++方法实现AdapterPattern模式
23种模式(Pattern) 1、创建形模式: ...1)、适配器:Adapter 2)、桥接模式:Bridge 3)、门面模式:Facade 4)、装饰模式:Decorator 3、行为型模式 1)、策略模式:Strategy 2)、观察者模式:Observer
1. **工厂模式(Factory Pattern)**:工厂模式是一种创建型...6. **适配器模式(Adapter Pattern)**:适配器模式是一种结构设计模式,允许接口不兼容的类能够一起工作,将一个类的接口转换成客户希望的另一个接口。
适配器模式(Adapter Pattern) 7. 桥接模式(Bridge Pattern) 8. 装饰模式(Decorator Pattern) 9. 组合模式(Composite Pattern) 10. 外观模式(Facade Pattern) 11. 享元模式(Flyweight Pattern) 12. 代理模式...
适配器模式[ADAPTER PATTERN] 模板方法模式[TEMPLATE METHOD PATTERN] 建造者模式[BUILDER PATTERN] 策略模式 代理模式 单例模式 多例模式 工厂方法模式 抽象工厂模式 门面模式 适配器模式 模板方法模式 建造者模式...