欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java设计模式-Template Method(模板方法)模式

程序员文章站 2022-07-12 18:33:06
...
  
   模板是指在薄片塑料板上面写字后挖空,再使用毛笔或色笔涂满挖空部分,就能看到纯手工而以不失工整的字样,看到模板上的挖空形状,马上就知道最后会变出什么样子的字,不过实际上所显现出来的字样还是要依所使用的画笔种类而定.拿黑色签字笔当画笔,结果当然就是签字笔的字样;当用铅笔来画,得到的也只会是灰黑色的铅笔字;如果用五颜六色的彩色笔,自然能创出让人眼花的多色字.但是,无论使用哪种文具,制作出来的字样都还是脱不了模板上已经固定的形状。

package template;

/*
 * 抽象类,充当模板角色  
 * @author administrator  
 *  
 */    

public abstract class Template {

	//由子类实现的抽象方法     
    public abstract void open();       
    public abstract void print();    
    public abstract void close();    
    //抽象类实现的方法,final可以保证在子类不会被修改     
    public final void display() {    
        open();   //先open...     
        for(int i=0; i < 5; i++) {  //反复输出5次     
            print();      
        }    
        close(); //输出完毕,close     
    }    

}


   package template;
/*
 * 类B,实现了三抽象方法,继承了display的方法,先执行open,在执行print,再执行close;
 */
public class CharDisplay extends Template {

	private char ch;
	
	public CharDisplay(char ch) {
		this.ch = ch;
	}
	
	public void close() {
		System.out.print(">>");

	}

	
	public void open() {
		System.out.print("<<");

	}

	public void print() {

			System.out.print(ch);

	}

}



   package template;
/*
 * 类A,实现了三抽象方法,继承了display的方法,先执行open,在执行print,再执行close;
 */
public class StringDisplay extends Template {

	private String s;
	
	public StringDisplay(String s) {
		this.s = s;
	}
	
	public void close() {
		System.out.println("--------------");

	}

	
	public void open() {
		System.out.println("--------------");

	}


	public void print() {
		
			System.out.println(s);
	

	}

}




package template;

public class Test {
	public static void main(String[] args) {
		/*
		 * 通过接口构造两个不同的实现类对象,执行了同样的模板方法,只是内容不同
		 */
		Template t1 = new CharDisplay('S');
		Template t2 = new StringDisplay("helloWold");
		
		t1.display();
		System.out.println();
		t2.display();
	}

}



java设计模式-Template Method(模板方法)模式
            
    
    博客分类: java java设计模式 


参考 http://blog.csdn.net/aaaaaaaa0705/article/details/6281759


  • java设计模式-Template Method(模板方法)模式
            
    
    博客分类: java java设计模式 
  • 大小: 31.9 KB
相关标签: java 设计模式