设计模式(一)之适配器模式

被适配的类:

public class Adaptee {
    public void specificMethod(){
        System.out.println("三脚插头");
    }
}

适配接口

public interface AppleInterface {
    public void phoneInterface();
}

适配器

public class Adapter implements AppleInterface {

    private Adaptee adaptee;

    public Adapter(Adaptee adaptee) {
        this.adaptee = adaptee;
    }

    @Override
    public void phoneInterface() {
        adaptee.specificMethod();
    }
}

参照类

public class Linghtning implements AppleInterface {
    @Override
    public void phoneInterface() {
        System.out.println("Linghtning.");
    }
}

调用者

public class Consumer {

    public static void main(String[] args) {
        // 适配到三脚插头
        AppleInterface linghtning = new Adapter(new Adaptee());
        linghtning.phoneInterface();

        // 只是自己
        linghtning = new Linghtning();
        linghtning.phoneInterface();
    }
}
时间: 2024-09-20 00:23:29

设计模式(一)之适配器模式的相关文章

C# 设计模式系列教程-适配器模式_C#教程

1. 概述 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 2. 解决的问题 即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 3. 模式中的角色 3.1 目标接口(Target):客户所期待的接口.目标可以是具体的或抽象的类,也可以是接口. 3.2 需要适配的类(Adaptee):需要适配的类或适配者类. 3.3 适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接

详解JavaScript实现设计模式中的适配器模式的方法_基础知识

有的时候在开发过程中,我们会发现,客户端需要的接口和提供的接口发生不兼容的问题.由于特殊的原因我们无法修改客户端接口.在这种情况下,我们需要适配现有接口和不兼容的类,这就要提到适配器模式.通过适配器,我们可以在不用修改旧代码的情况下也能使用它们,这就是适配器的能力. 适配模式可用来在现有接口和不兼容的类之间进行适配,使用这种模式的对象又叫包装器(wrapper),因为它们是在用一个新的接口包装另一个对象. 从表面上看,适配器模式很像外观模式.它们都要对别的对象进行包装并改变其呈现的接口.二者的差

PHP设计模式之:适配器模式入门教程

适配器模式有什么用?   将一个类的接口转换成客户希望的另外一个接口.适配器模式使得原来由于接口不兼容而不能一起工作的那此类可以一起工作 适用性 1.你想使用一个已经存在的类,而它的接口不符合你的需求2.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类协同工作3.你想使用一个已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口.对象适配器可以适配它的父类接口(仅限于对象适配器) 应用举例,例如PHP的数据库操作有MySQL.Mssql.PDO等,可以用适配器模式统一成一

Java结构型设计模式中的适配器模式与桥接模式解析_java

适配器模式 定义 适配器模式(英语:adapter pattern)有时候也称包装样式或者包装.将一个类的接口转接成用户所期待的.一个适配使得因接口不兼容而不能在一起工作的类工作在一起. 有两类适配器模式: 1. 对象适配器模式 - 对象适配器通过关联满足用户期待接口,还降低了代码间的不良耦合.在工作中推荐使用"对象适配". 2. 类适配器模式 - 这种适配器模式下,适配器继承自已实现的类(一般多重继承),java中没有多重继承,所以这里不做介绍. 实现 1. Target - 定义C

.net设计模式实例之适配器模式(Adapter Pattern)

一.适配器模式简介(Brief Introduction) 适配器模式,将一个类装换成客户期望的另外一个接口.Adapter模式使的原本由于接口 不兼容而不能工作的那些类可以一起工作. 二.解决的问题(What To Solve) 1.使用第三方组件,而这个组件的接口与目前系统接口不兼容(如方法与系统方法不一 致等),可以使用适配器模式解决接口不兼容问题. 2.使用早前项目一些有用的类,可以用适配器模式解决现有接口与原有对象接口不兼容 问题. 三.适配器模式分析(Analysis)1.适配器模式

iOS App设计模式开发之适配器模式使用的实战演练_IOS

相信做App开发的同学,对于一些第三方的统计分析.错误收集等SDK应该都不陌生.就目前而言市面上也有许多相同功能的产品,眼花缭乱,让人无法抉择选哪一款SDK才是最靠谱的.那就随便先选一款试试用吧! 那么问题来了:如果项目都快做完了结果发现这款SDK实在坑爹,不仅扩展性差,还经常让App Crash,那你是不是会想到替换掉这个SDK? OK,那我们就换另一个试试,下载SDK下来,一看,傻眼了,设计风格,封装模块完全不一样,于是乎我们就到项目中全局搜索找到之前的SDK代码干掉,然后重新再到各种地方用

php设计模式介绍之适配器模式

接口的改变,是一个需要程序员们必须(虽然很不情愿)接受和处理的普遍问题.程序提供者们修改 他们的代码;系统库被修正;各种程序语言以及相关库的发展和进化.我孩子的无数玩具中有一个简要地 描述了这个两难局面:你无法合理安排一个不得其所的人. 问题 你如何避免因外部库的 API改变而带来的不便?假如你写了一个库,你能否提供一种方法允许你软件的现有用户进行完美地升级 ,即使你已经改变了你的API?为了更好地适宜于你的需要,你应该如何改变一个对象的接口? 解决方案 适配器(Adapter)模式为对象提供了

传统设计模式(七)适配器模式(附外观模式)

记得以前章节谈过的装饰者模式,我们将对象包装起来,赋予他们新的职责.而现在则是以不同目的,包装某些对象:让他们的接口看起来不像自己而像是别的东西.这样就可以在设计中,将类的接口转换成想要的接口,以便实现不同的接口. 在项目中,适配器模式一般扮演者协调者的作用. 1.客户通过目标接口调用适配器的方法对适配器发出请求 2.适配器使用被适配者接口把请求转换成被适配者的一个或多个调用接口 3.客户接受到调用的结果,但并未察觉这一切是适配器在起转换作用 另外还有一种特殊情况,万一系统新旧并存,旧的部分期望

设计模式之旅-第一天 适配器模式

什么是设计模式 在软件开发的世界里,许多领域中的问题具有相似的特性.就像造房子一样,不管要盖一座购物中心 ,还是要盖一座假日酒店,它们之间都有基本上相似的工作步骤,都需要搭建梁柱,铺置房顶等工作. 在做这些工作时都需要遵循某种特殊的技术要求,以使得房子的结构.承受能力达到合理,这些规则是 前人经过精确的计算和失败的教训得来的.对于软件开发也一样,如果我们希望编写出来健壮.灵活的 应用程序,也有必要进行精细的设计,并且可以通过遵循某种规则以达到这个目标.这些规则或者称之 为技巧就是设计模式. 设计

设计模式之适配器模式(adaptor pattern)

1 适配器模式的定义 在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper).将一个类的接口转接成用户所期待的.一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中. 2 实际应用中的例子 比如我们去日本买了一个日本的电饭煲,但日本电压标准都是110V,而我们国家标准是220V,所以要想在中国用日本电饭煲,需要一个电源适配器. 比如我们有一个micro SD卡,如果我们想在笔记本上用,就需要一个读