装饰者模式 大嘴的身份

      李大嘴喜欢杨惠兰,杨惠兰喜欢有钱,有能力,有气魄的男人,李大嘴不是她的菜,为了爱情,李大嘴决定改变自己

,于是他做了如下的改变:

男人这个物种:

public interface Man {
	/**
	 * 什么样的男人
	 */
	void desc();
}

 

 

真正的李大嘴:

public class DaZui implements Man {

	public void desc() {
		System.out.println("李大嘴:男,年龄:26,婚否:至今未婚,特征:嘴大出奇,座右铭:最大吃八方");
	}
}

 

 

这样的李大嘴,杨慧兰看不上,于是掌柜和大伙一合计,决定给大嘴镀个金身:

变身器:

/**
 * 男人变身器
 * @author wjs
 *
 */
public class ManDecorator implements Man {
	//记录被装饰者
	private Man man;
	
	public ManDecorator(){}
	
	//把最新的装饰结果保存起来
	public ManDecorator(Man man){
		this.man=man;
	}
	public void desc() {
		man.desc();
	}
}
 

 

各种身份安到李大嘴的头上:

package com.sail.utils.decorator;

//暴发户
public class DaoShen extends ManDecorator {

	public DaoShen(Man man){
		super(man);
	}
	
	public void desc() {
		System.out.println("盗圣。。。。。。。");
		super.desc();
	}
}

//暴发户
class BaoFaHu extends ManDecorator {

	public BaoFaHu(Man man){
		super(man);
	}
	
	public void desc() {
		System.out.println("暴发户。。。。。。。");
		super.desc();
	}
}

//关中大侠
class GuanZhongDaXia extends ManDecorator {

	public GuanZhongDaXia(Man man){
		super(man);
	}
	
	public void desc() {
		System.out.println("关中大侠。。。。。。。");
		super.desc();
	}
}

//京城食神
class JinChengShiShen extends ManDecorator {

	public JinChengShiShen(Man man){
		super(man);
	}
	
	public void desc() {
		System.out.println("京城食神。。。。。。。");
		super.desc();
	}
}

//武林盟主
class WuLinMenZhu extends ManDecorator {
	public WuLinMenZhu(Man man){
		super(man);
	}
	
	public void desc() {
		System.out.println("武林盟主。。。。。。。");
		super.desc();
	}
}

/**
 * 犀利的老板
 * @author wjs
 *
 */
class LaoBan extends ManDecorator {

	private String name;
	
	public LaoBan(Man man,String name){
		super(man);
		this.name=name;
	}
	
	public void desc() {
		System.out.println(name+ " 的老板。。。。。。。");
		super.desc();
	}
}

 

 

是时候让杨慧兰见识传说中的李大嘴了:

public class DaZuiInStory {

	public static void main(String[] args) {
		Man dazui=new DaZui();
		dazui=new DaoShen(dazui);
		dazui=new WuLinMenZhu(dazui);
		dazui=new GuanZhongDaXia(dazui);
		dazui=new LaoBan(dazui,"同福客栈") ;
		dazui=new LaoBan(dazui,"微软") ;
		dazui=new JinChengShiShen(dazui);
		
		dazui.desc();
	}
}

 

杨慧兰最后看到的李大嘴:

 

京城食神。。。。。。。

微软 的老板。。。。。。。

同福客栈 的老板。。。。。。。

关中大侠。。。。。。。

武林盟主。。。。。。。

盗圣。。。。。。。

李大嘴:男,年龄:26,婚否:至今未婚,特征:嘴大出奇,座右铭:最大吃八方


杨慧兰怎么一个心动了得!!!大嘴的春天来了,用了变身器,你好,我也好!

你可能感兴趣的:(装饰者模式)