懒羊学习《深入浅出设计模式》C#代码手札之装饰者模式

来源:互联网 发布:漫威和dc哪个厉害 知乎 编辑:程序博客网 时间:2024/05/15 00:47
        装饰者模式:动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。
这一节总算好,来点喝的了,好像还能点点早点。但想想那么复杂的思想,味口也没了,好不容易费了大劲,还参照了网络一些高手们的源码,总算自己把源码凑了出来,当然省去了一些相的的类,重点是搞懂及中心类写出来也就行了。
刚开始说真的真的没搞懂,等具体的看了所有的代码才知道,原来不管是哪个类,都可以说是继承了同一个基类,也就是存在着一个“A”,后来再怎么“生”,里面总还是有一个“A”,而且这个“A”永远是个核心,说实在的,我总觉得有点像“迭代”的倒过来,也不知道这种说法正确不正确。
我们来看看具体的例子;首先存在一个“饮料”,里面有“数量”和“描述”,现在某在一个主食去继承它,然后再来一个配料又去继承它,只是不同的,配料在初始化的时候,要关联一个主食(当然如果你把主食中也去放一个关联,那么主食就可以套主食)。
关联:Beverage这是“饮料”,而主食、配料都会继续它。
Beverage beverage;
        public Mocha(Beverage b)
        {
            this.beverage = b;
        }
     这样,我们在初始化对象时,首先生成一个主食,然后再生成配料时把主食放进去(装饰主食),从而生成的新产对象又是一个饮料,然而这个饮料同样又可用配料去装饰它,那样永远的循环下去,就可以随便的去添加东西了。(看不懂的看代码,我自己都说糊涂了)
 源代码下载
原创粉丝点击