设计模式学习3——装饰者模式(Decorator)

       没想到鼻炎还要做手术,这应该是出生到现在的第一个手术吧,据说是个小手术,呵呵,应该没有什么问题吧,不过得有10天左右的手术及休养时间,不知道设计模式的学习会不会被打断,嘿嘿。

装饰者模式
    
      官方解释:……

      个人理解:如果要把多个类组合在一起,形成新的对象,除了使用继承然后多态,使用装饰者模式更加合适,不过据说这样的话,会出现很多的小类,导致代码的可理解性变差……

      小实例: 技术支持中心的“老成员”们都有一起吃鸡蛋炒拉面的经历,这不,拉面店的老板要把他的生意“信息化、自动化”。拉面店大约有三四十种拉面吧,其中拉面都是一样的,只不过放进的佐料不同而已,比如:牛肉炒拉面、鸡蛋炒碰面等等。这情形最适合装饰者模式了。 画个图吧
 
 

      上面的图是HeadFirst电子书里的,自己偷了个小懒,没有重新去画,于是上面的图只是介绍装饰者模式的,和下面的代码原理一样,不过不是下面代码的类图:

package component;

public class Lamian extends Mian {

    
public float UseTime() {
        
return 30;
    }


}

//-------下面是另一个文件了,这就是component


package component;

public abstract class Mian {
    String name;
    
public String getName() {
        
return name;
    }

    
public abstract float UseTime();
}



    装饰者们的代码:

装饰者


        测试一下吧:

测试


         测试结果截图:
      
posted @ 2008-05-27 13:10  玉米疯收  阅读(460)  评论(2编辑  收藏  举报