Java 设计模式-----装饰模式

     自学Java,学到装饰模式, 弄了半天,终于搞懂了!!所以自己也写了一个简单的装饰模式! 自娱自乐一下 大笑

// 人穿衣的嘛,此接口没什么好解释的!

public interface Human
/*

*c7c7cc7@126.com

  */

public void dress();
}

----------------------------------------------------------------------------

//  把"Human"类具体化,指的是 少女(gril)! 在方法dress 里,有一个没有穿衣服的少女! 嘎!!嘿嘿~~~~
public class Gril  implements Human
{
@Override
public void dress()
{
System.out.println("裸体");
}
}

----------------------------------------------------------------------------------

public class Clothes  implements Human
{
/*  
 * 衣服(clothes)就是为了给人穿的嘛,所以你要有一个人的引用,
    *并且在构造方法上把衣服给人

    */
            private Human human;
            
            public Clothes( Human  human)
            {
                    this.human = human;
            }
            // 给人穿衣
            @Override
            public  void dress()
{
            human.dress();
}
}

---------------------------------------------------------------------

// 一个裙子(skirt)类,少女害羞,先给她来件裙子,把春光藏起来大笑

public class Skirt  extends Clothes
{
              public Skirt (Human human)
              {
              super(human);
              }
              
              @Override
            public void dress()
            {
                                 super.dress();
                                 this.derssAn0ther();
            }
              
              public void derssAn0ther()
              {
              System.out.println("----->穿上了裙子");
              }
              
}

------------------------------------------------------

// 再来件裤子,俗话说,风吹裙起屁屁凉,春风乍泄路人惊!所以,一件裙子顶毛用??

public class Pants  extends Clothes
{
public Pants( Human  human)
{
         super(human);
}

@Override
public void dress()
{
super.dress();
this.dressAnother();

}

public void dressAnother()
{
System.out.println("----->穿上了裤子");
}
}

------------------------------------------------------

//  少女叫小丽,在试衣间(dressing room)换衣服了!!

// 可以一件一件的 穿!当然也可以一次性都穿好出来;一般推荐第二种,省代码量

public class DressingRoom
{
public static void main(String[] args)
{
/*  
         Human  xiaoli = new Gril();// 把小丽叫出来(没穿衣服的)
Human xiaoli_2 = new Skirt(xiaoli);// 给小丽穿了个裙子(小丽第二步要做到)
xiaoli_2.dress();
Human xiaoli3 = new Pants(xiaoli_2);// 又穿了个裤子(小丽第三步要做到)
xiaoli_3.dress();
*/
// 把上面的合并起来.推荐!!!!
Human  xiaoli = new Skirt (new Pants (new Gril()));
xiaoli.dress();
}
}


第一次发帖,多指教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值