结构模式之适配器模式

package com.eric.design.adapter;
//如果将类B接到类A上用,这叫做单向适配器模式,A主动,B被动
//单向适配器模式要点:继承方法
//被动方以后可能被切换,所以为了方便,最好面向接口编程,
class A{
	public void funA(){
		System.out.println("A:funA()");
	}
}
interface IExtendModule{//定义一个接口,管理所有的扩展模块(被动方模块)
	public void extendFun();
}

class B implements IExtendModule{
	public void extendFun(){
		System.out.println("B:funB()");
	}
}

class C implements IExtendModule{
	public void extendFun(){
		System.out.println("C:funC()");
	}
}

class SubA extends A{//将A进行扩展,以后将SubA当初A使用
	IExtendModule iem;//完全面向接口编程
	public SubA(IExtendModule iem){
		this.iem = iem;
	}
	public void funA(){
		super.funA();
		iem.extendFun();
	}
}

public class Adapter {
	public static void main(String[] args) {
		SubA subA = new SubA(new B());
		//SubA subA = new SubA(new C());
		subA.funA();
	}
}

猜你喜欢

转载自wxbin-perfect.iteye.com/blog/1687498
今日推荐