java设计模式 -Decorator


//抽象构件角色
abstract public class Component{ 
	abstract public void prtTicket(); 
} 

//具体构建角色
public class SaleTicket extend Component{ 
	public void prtTicket(){ 
		System.out.println("Sale Ticket" ); 
	} 
} 

//抽象装饰者角色
abstract public class TicketDecorator extend Component { 
	private Component myTrailer; 
	public TicketDecorator(Component comp){ 
		myTrailer = comp; 
	} 
	public void callTrailer(){ 
		if (myTrailer != null ) 
			myTrailer.prtTicket(); 
		} 
	} 
}
//具体装饰角色header
public class Header extend TicketDecorator{ 
	public Header(Component comp){ 
		super(comp); 
	} 
	public void prtTicket(){ 
		System.out.println("Header" ); 
		super.callTrailer(); 
	} 
} 
//具体装饰角色footer
public class Footer extend TicketDecorator{ 
	public Footer (Component comp){ 
		super(comp); 
	} 
	public void prtTicket(){ 
		super.callTrailer(); 
		System.out.println("Footer" ); 
	} 
} 
//测试
public class Test{ 
	public static void main(String args[]){ 
		Component c = new Header( new Footer( new SaleTicket())); 
		c.prtTicket(); 
	} 
} 


猜你喜欢

转载自lorry1113.iteye.com/blog/1434433