package com.donnie;
/*应用需要凡是以后A的对象调用了funA1方法, 一定要同时调用B的funB1方法;
* B的对象调用了funB2方法,一定要同时调用A的funA2方法;怎么办?不能改变源代码*/
//双向适配器模式要点是:组合法
/*class A1 {
public void funA1(){
System.out.println("funA1 方法"); }
public void funA2(){
System.out.println("funA1 方法");}
}
class B1{
public void funB1(){
System.out.println("funB1 方法");}
public void funB2(){
System.out.println("funB2 方法");}
}
class AB{ //组合A和B 将AB当成A和B来使用
private A1 a;
private B1 b;
public void setA(A1 a){
this.a=a;
}
public void setB(B1 b){
this.b=b;
}
//
public void funA1(){
a.funA1();
b.funB1();
}
public void funB2(){
b.funB2();
a.funA2();
}
}
public class Adapter2 {
public static void main (String args[]){
AB ab =new AB();
ab.setA(new A1());
ab.setB(new B1());
ab.funA1();
//这样就实现对象调用了funA1方法,同时又调用了B的funB1方法
}
}*/
//-------------------------
//上面的方法不容易切换,所以还是得面向接口编程
interface IA{
public abstract void funA1();
public abstract void funA2();
}
class A1 implements IA{
public void funA1(){
System.out.println("funA1 方法"); }
public void funA2(){
System.out.println("funA1 方法");}
}
interface IB{
public abstract void funB1();
public abstract void funB2();
}
class B1 implements IB{
public void funB1(){
System.out.println("funB1 方法");}
public void funB2(){
System.out.println("funB2 方法");}
}
class AB implements IA,IB{ //组合A和B 将AB当成A和B来使用 ,实现IA,IB避免功能缺失
private IA ia;
private IB ib;
public void setIa(IA ia) {
this.ia = ia;
}
public void setIb(IB ib) {
this.ib = ib;
}
//
public void funA1(){
ia.funA1();
ib.funB1();
}
public void funB2(){
ib.funB2();
ia.funA2();
}
public void funA2() {
ia.funA2();
}
public void funB1() {
ib.funB2();
}
}
public class Adapter2 {
public static void main (String args[]){
AB ab =new AB();
ab.setIa(new A1());
ab.setIb(new B1());
ab.funA1();
//这样就实现对象调用了funA1方法,同时又调用了B的funB1方法
}
}
分享到:
相关推荐
适配器模式笔记1
猫狗之互相学习,双向适配器实现.读取配置文件,实现面向接口编程
适配器模式的Java实现版本,包含类适配器模式和对象适配器模式的实现,同时也包含两者的UML类图
设计模式之适配器模式Java版 设计模式之适配器模式Java版 设计模式之适配器模式Java版 设计模式之适配器模式Java版
C#设计模式之适配器模式应用实例
java设计模式之适配器模式,希望对大家有所帮助。
动态代理模式 适配器模式 实现,都可以运行,有一部分注解
适配器模式代码demo 适配器模式代码demo 适配器模式代码demo
java设计模式【之】适配器模式【源码】【场景:水和容器】 * 适配器模式,类似(亡羊补牢) * 已经存在的类(功能已经开发完成了),与新需求的功能相似,但是略有差异 * 当已经存在的方法无法满足现有需求,需要...
适配器模式的介绍: 适配器模式(Adapter Pattern) 是作为两个不兼容接口之间的桥梁, 这种类型的设计模式属于结构型模式。 一些书籍也称适配器模式为缺省适配器模式(Default Adapter Pattern) 。 适配器模式主要...
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个...
实验7 适配器模式、外观模式与模板方法模式---Java设计模式
设计模式-适配器模式(讲解及其实现代码)
什么是抽象:抽象是处理对象复杂性的一种技术,它只关注对象的主要细节而忽略了对象的次要细节。
适配器模式 设计模式 Adapter 还请各位大S指教
[刚刚上传的demo运行有问题,重新传了个新的],这个的一个iOS的适配器模式的实例代码,目前就是一个简单的demo,后期还会更新适配器在 MVC,MVP,MVVM中的使用,demo对应着简书:https://www.jianshu.com/p/e2ebcf19098f,...
Java设计模式之适配器模式
实验七:适配器模式.rar实验七:适配器模式.rar