论坛首页 入门讨论版 Java

二.Adapter Pattern (适配器模式)

浏览 377 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2007-09-23 关键字: 适配器模式简单例子
引用
对类的适配器模式(继承实现)

PrintStr 接口

package classadapter;

public interface PrintStr {
	public void printStr();
	public void putsStr();

}


Banner: 父类
package classadapter;

public class Banner {
	private String str;
	
	public void Banner(String str){
		this.str=str;
		
	}
	
	public void printStrWithP(){
		System.out.println("("+this.str+")");
	}
	public void putsStrWithA(){
		System.out.println("*"+this.str+"*");
	}

}

PrintBanner: 子类及实现

package classadapter;

public class PrintBanner extends Banner implements PrintStr {

	public PrintBanner(String str){
		super.Banner(str);
	}
	public void printStr() {
		// TODO Auto-generated method stub
		super.printStrWithP();
		
	}

	public void putsStr() {
		// TODO Auto-generated method stub
		super.putsStrWithA();
		
	}
	

}



Main:main方法类

package classadapter;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		PrintStr print=new PrintBanner("hello");
		print.printStr();
		print.putsStr();
		

	}

}






引用
对对象的适配器模式(委托实现)

PrintStr: 虚拟类

package objectadapter;
public abstract  class PrintStr {
	abstract public void printStr();
	abstract public void putsStr();

}



Banner: 父类
package objectadapter;

public class Banner {
	private String str;
	
	public Banner(String str){
		this.str=str;
		
	}
	
	public void printStrWithP(){
		System.out.println("("+this.str+")");
	}
	public void putsStrWithA(){
		System.out.println("*"+this.str+"*");
	}

}

PrintBanner: 子类及实现

package objectadapter;

public class BannerPrint extends PrintStr {
	private Banner banner;
	
	public BannerPrint(String str){
		this.banner=new Banner(str);
	}

	public void printStr() {
		// TODO Auto-generated method stub
		this.banner.printStrWithP();
	}

	public void putsStr() {
		// TODO Auto-generated method stub
		this.banner.putsStrWithA();
	}
	
	
	

}


Mian:main方法类

package objectadapter;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		PrintStr print=new PrintBanner("hello");
		print.printStr();
		print.putsStr();
		

	}

}

   
论坛首页 入门讨论版 Java

跳转论坛:
JavaEye推荐