`
kang
  • 浏览: 472739 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

结构模式之双向适配器模式2

阅读更多

<!---->

对前面一篇文章《双向适配器模式1》中的程序进行改进,面向接口编程:

 

说明:试了很多次,这两个就是不能合在一篇中发布(第二部分只显示上面的部分),真是邪门了,只好分成两篇。

 

package com.javaeye.kang.adapter;

 

 

/**

  * 双向适配器模式

  * :面向接口

  */

 

// 接口

interface IA {

      public abstract void funA1();

      public abstract void funA2();

}

 

class A implements IA {

      public void funA1() {

            System. out .println( "A.funA1()" );

      }

      public void funA2() {

            System. out .println( "A.funA2()" );

      }

}

 

// 接口

interface IB {

      public abstract void funB1();

      public abstract void funB2();

}

 

class B implements IB {

      public void funB1() {

            System. out .println( "B.funB1()" );

      }

      public void funB2() {

            System. out .println( "B.funB2()" );

      }

}

 

// A B ,将 AB 当成 A B 来使用

//AB 时实现 A 接口和 B 接口

class AB implements IA,IB {

 

      private IA ia ;

      private IB ib ;

     

      public void setIa(IA ia) {

            this . ia = ia;

      }

      public void setIb(IB ib) {

            this . ib = ib;

      }

     

      // 功能

      //A 用了 A funA1() 方法后,同 时调 B funB2() 方法

      public void funA1() {

            ia .funA1(); // 明:去掉本句 是功能替

            ib .funB1();

      }

      //B 用了 B funB2() 方法后,同 时调 A funA2() 方法

      public void funB2() {

            ib .funB2();

            ia .funA2();

      }

     

      // 重写其他功能,以免

      public void funA2() {

            ia .funA2();

      }

      public void funB1() {

            ib .funB1();

      }

}

 

public class AdapterTest {

      public static void main(String []args) {

            AB ab = new AB();

            // 入两个 的引用,多 IA ia = new A()

            ab.setIa( new A());

            ab.setIb( new B());

            // 端使用

            ab.funA1();

            ab.funB2();

      }

}

 

测试结果:

A.funA1()

B.funB1()

B.funB2()

A.funA2()

 

 

 

 

  • 描述: 双向适配器要点
  • 大小: 76.7 KB
  • 描述: 双向适配器模式练习(功能替换)
  • 大小: 99.9 KB
  • 描述: 适配器模式小结
  • 大小: 80.8 KB
分享到:
评论

相关推荐

    实验7 适配器模式、外观模式与模板方法模式

    **适配器模式(Adapter Pattern)** 是一种结构型设计模式,它允许不兼容的接口之间能够协同工作。适配器模式的主要作用是通过创建一个新的适配器类来包装现有类的接口,使其满足客户端的接口需求。 ##### 实现案例:...

    结构型模式之适配器模式

    适配器模式是一种结构型设计模式,它的核心目的是在接口不兼容的情况下,使两个原本无法协同工作的对象能够一起工作。适配器模式通过创建一个转换器(适配器),将一个类的接口转换成客户期望的另一个接口。这种模式...

    实现一个适配器实例,使得猫(Cat)可以学狗(Dog)叫

    适配器模式是一种结构型设计模式,它的主要目的是解决两个不兼容的接口之间的交互问题。适配器将一个类的接口转换为客户期望的另一个接口,使原本由于接口不兼容而不能一起工作的那些类可以协同工作。在这个例子中...

    Python设计模式编程中Adapter适配器模式的使用实例

    在Python编程中,适配器模式是一种非常实用的设计模式,它允许不同的接口或类之间进行交互,即使它们的结构不兼容。适配器模式的主要目的是解决原有类的接口与现有需求之间的冲突,使得原本不能协作的类能够协同工作...

    java常用数据结构及算法集锦

    结构模式 代理模式 外观模式 适配器模式 装饰模式 组合模式 享元模式 桥接模式 行为模式 观察者模式 模板方法模式 策略模式 命令模式 调停者模式 备忘录模式 解释器模式 迭代器模式 状态模式 责任链模式 访问者...

    c#设计模式期末文档

    双向适配器模式是一种结构型设计模式,它允许不兼容的接口互相操作。在提供的代码示例中,`Adapter` 类实现了 `Target` 和 `Adaptee` 接口,使得原本不兼容的接口可以通过适配器进行通信。`Target` 是希望调用的...

    设计模式图示,帮助学习设计模式

    2. **结构模式**: - **外观模式(Facade)**:为子系统的一组接口提供一个一致的高层接口,使得子系统更容易被使用。 - **代理模式(Proxy)**:为其他对象提供代理以控制对该对象的访问,例如在访问前添加权限...

    设计模式2018.rar

    "SDP03-01之双向适配器.docx"则涉及结构型设计模式中的双向适配器,这种模式可以将两个接口转换为彼此兼容,使得原本不兼容的类可以协同工作。 "SDP03-07静态代理和动态代理.doc"涵盖了代理模式,代理模式为其他...

    设计模式实战、jdk源码|simple-demo.zip

    再如`java.util.ArrayList`和`java.util.LinkedList`,它们分别使用了动态数组和双向链表实现,体现了两种不同的数据结构,同时也展示了适配器模式和组合模式的概念。 在实战中,设计模式的应用无处不在。例如,当...

    Java和Android源码设计模式

    - **结构型模式**包括适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式和享元模式。这些模式关注于如何组合类或对象以获得更大的灵活性。 - **适配器模式**:将一个类的接口转换成客户希望的另一个...

    UML类图及、7大设计原则、23种设计模式

    结构型模式涉及类或对象的组合,以形成更大的结构,例如适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式。行为型模式关注对象之间的通信,规定了对象的行为,包括策略模式、模板方法模式、...

    设计模式结构型模式

    适配器模式主要有三种形式:对象适配器、类适配器和双向适配器。适配器类作为转换器,将Adaptee的接口转换为客户期望的Target接口。对象适配器通过关联Adaptee,而类适配器则通过继承Target和Adaptee。适配器模式...

    CAN总线适配器

    - **网络拓扑结构**:支持线型、星型、树型等多种拓扑结构。 - **传输速率**:RS232/RS485/RS422支持1200至57600BPS,CAN总线支持5K至1MBPS。 - **传输介质**:采用屏蔽或非屏蔽双绞线作为物理层传输介质。 - **总线...

    23种设计模式23种设计模式

    适配器模式(Adapter) - **定义**:将一个类的接口转换成客户希望的另一个接口。 - **应用场景**:用于现有类和客户类接口不兼容的情况。 #### 7. 桥接模式(Bridge) - **定义**:将抽象部分与它的实现部分分离...

    初中级Android开发社招面试之设计模式.pdf

    - Android中的设计模式实例:AlertDialog和Notification使用建造者模式,Okhttp利用责任链模式,RxJava运用观察者模式,BaseActivity体现抽象工厂模式,GridView的适配器模式,Intent使用原型模式。 6. 单例模式:...

    基于LinkedList高性能android列表适配器

    LinkedList是一种双向链表数据结构,与ArrayList相比,它在插入和删除操作上具有更好的性能,但在随机访问元素时效率较低。 **1. Android列表控件:RecyclerView与ListView** - **RecyclerView**:是Android 5.0...

    设计模式+STL代码示例

    - **适配器模式**:使两个不兼容的接口能够协同工作,通过创建一个适配器类,将旧接口转换为新接口的形式。 2. **STL(标准模板库)**: - **容器**:STL中的容器如vector、list、deque、set、map等,它们提供了...

    常用的数据结构,算法,设计模式的积累。.zip

    6. 适配器模式:将一个类的接口转换成客户期望的另一个接口,使原本由于接口不兼容而不能一起工作的类能够协同工作。 7. 模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。 熟练掌握这些数据...

    设计模式解析复习提纲

    - **结构型模式**:包括适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式。 - **行为型模式**:包括职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式...

    AndroidDesignPatterns,安卓设计模式.zip

    10. **适配器模式**:ListView、RecyclerView等控件的Adapter就是适配器模式的应用,它将不同的数据源适配成统一的视图接口,实现了数据与显示的解耦。 以上只是AndroidDesignPatterns项目中可能涵盖的部分设计模式...

Global site tag (gtag.js) - Google Analytics