标签:java
package test;
public class Manager {
	public static void main(String args[]){
		Second s=new Second();
		s.getFirst();
	}
	/**
	 * 打印结果:
	 */
}
class First{	
}
class Second{
	
	First f;
	
	Second(){
		System.out.println("Creating Second");		
	}
	
	First lazy(){
		if(f==null){
			 System.out.println("Creating First");
			f=new First();
		}
		return f;
	}
	
	public First getFirst(){
		return lazy();
	}
}package test;
public class Manager {
	public static void main(String args[]){
		Sub s=new Sub();
		s.apply();s.dilute();s.foam();s.scrub();s.sterilize();
		new print(s);
	}
	
	/**
	 * 打印结果:
		Cleanser apply() dilute() foam() sub.scrub Detergent.scrub()sub.sterilize()
	 */
}
class print{
	print(Object obj){
		System.out.println(obj);
	}
}
class Cleanser{
	private String s="Cleanser";
	public void append(String a){
		s+=a;
	}	
	public void dilute(){
		append(" dilute()");
	}
	public void apply(){
		append(" apply()");
	}
	public void scrub(){
		append(" scrub() ");
	}
	public String toString(){
		return s;
	}
	public static void main(String[] args){
		Cleanser x=new Cleanser();
		x.dilute();x.apply();x.scrub();
		new print(x);
	}
}
class Detergent extends Cleanser{
	public void scrub(){
		append(" Detergent.scrub()");
	}
	public void foam(){
		append(" foam()");
	}
	
}
class Sub extends Detergent{
	public void scrub(){
		append(" sub.scrub");
		super.scrub();
	}
	public void sterilize(){
		append("sub.sterilize()");
	}
}标签:java
原文地址:http://blog.csdn.net/ztt_1119/article/details/40898563