adapter 适配器模式

adapter 适配器模式 -- java模式

  1. 适配器模式1 基于继承方式
  2. 适配器模式2 基于对象组合
  3. 适配器模式3 原始适配器

适配器模式1 基于继承方式

 Adaptee.java

package com.mark.pattern.adapter;

public class Adaptee {
	public void method2() {
		System.out.println("目标方法");
	}
}

Adapter.java

package com.mark.pattern.adapter;

/**
 * 类适配器
 * 基于继承方式
 */
public class Adapter extends Adaptee implements Target{

	@Override
	public void method1() {
		this.method2();
	}
}

Target.java

package com.mark.pattern.adapter;

public interface Target {
	public void method1();
}

Client.java

package com.mark.pattern.adapter;

public class Client {
	public static void main(String[] args) {
		Target target = new Adapter();
		target.method1();
	}
}

适配器模式2 基于对象组合

Adaptee.java

package com.mark.pattern.adapter2;

public class Adaptee {
	public void method2() {
		System.out.println("执行方法");
	}
}

Adapter.java

package com.mark.pattern.adapter2;

/**
 * 适配器模式
 * 基于对象组合
 */
public class Adapter implements Target{

	private Adaptee adaptee;
	
	public Adapter(Adaptee adaptee) {
		this.adaptee = adaptee;
	}
	
	public void method1() {
		adaptee.method2();
	}
}

Target.java

package com.mark.pattern.adapter2;

public interface Target {
	public void method1();
}

 Client.java

package com.mark.pattern.adapter2;

public class Client {
	public static void main(String[] args) {
		Target target = new Adapter(new Adaptee());
		
		target.method1();
	}
}

适配器模式3 原始适配器

 AbstractService.java

package com.mark.pattern.defaultAdapter;

public interface AbstractService {
	public void service1();
	
	public void service2();
	
	public void service3();
}

 ServiceAdapater.java

package com.mark.pattern.defaultAdapter;

public class ServiceAdapater implements AbstractService {

	@Override
	public void service1() {

	}

	@Override
	public void service2() {

	}

	@Override
	public void service3() {

	}
}

 ConcreteService.java

package com.mark.pattern.defaultAdapter;

/**
 * 原始适配器模式
 */
public class ConcreteService extends ServiceAdapater{
	@Override
	public void service1() {
		System.out.println("执行业务方法");
	}
}

猜你喜欢

转载自crackit.iteye.com/blog/1041739