设计模式之装饰模式,decorator

package liu.decorator.demo;
public  class Person {
 private String name;
 public Person(){}
 public Person(String name){
  this.name = name;
 }
 public  void show(){
  System.out.println("decorate:"+name);
 }
 
}
-----------------------------------------
 package liu.decorator.demo;
public class Finery extends Person{
 protected Person  component;
 public void Decorate(Person component){
  this.component= component;
 }
 
 public void show(){
  if(component!=null){
   component.show();
  }
 }
}
---------------------------------------
 package liu.decorator.demo;
public class Shoot extends Finery{
 public void show(){
  System.out.println("球鞋");
  super.show();
 }
}
--------------------------------------
 package liu.decorator.demo;
public class TShirts extends Finery{
 public void show(){
  System.out.println("大T桖");
  super.show();
 }
}
-------------------------
package liu.decorator.demo;
public class BigTrouser extends Finery{
 public void show(){
  System.out.println("垮裤");
  super.show();
 }
}
-----------------------------
package liu.decorator.demo;
public class Main {
 public static void main(String[] args) {
  Person xc = new Person("小菜");
  System.out.println("第一种装扮:");
  BigTrouser kk = new BigTrouser();
  TShirts dtx = new TShirts();
  Shoot st = new Shoot();
  
  kk.Decorate(xc);
  dtx.Decorate(kk);
  st.Decorate(dtx);
  st.show();
  
  
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值