大话设计模式之装饰模式

转载 2013年12月06日 10:45:56

敲了下代码,不是很理解

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            ConcreteComponenth c = new ConcreteComponenth();
            ConcreteDecoratorA ca = new ConcreteDecoratorA();
            ConcreteDecoratorB cb = new ConcreteDecoratorB();
            ca.SetComponent(c);
            cb.SetComponent(ca);
            cb.Operation();
            Console.ReadLine();
        }
    }
    public abstract class Componenth{
        public abstract void Operation();
    }
    public class ConcreteComponenth:Componenth{
        public override void Operation()
        {
            Console.WriteLine("Concrete Operatiion");
        }
    }
    public abstract class Decorator:Componenth
    {
        protected Componenth component;
        public void SetComponent(Componenth _com)
        {
            this.component = _com;
        }
        public override void Operation()
        {
            if (component!=null)
            {
                component.Operation();
            }
            //throw new NotImplementedException();
        }
    }
    public class ConcreteDecoratorA:Decorator{
        private string addedState;
        public override void Operation()
        {
            base.Operation();
            addedState = "new state";
            Console.WriteLine("具体装饰对象A操作!");
        }
    }
    public class ConcreteDecoratorB:Decorator{
        public override void Operation()
        {
            base.Operation();
            AddedBehavior();
            Console.WriteLine("B operation");
        }

        void AddedBehavior()
        {

        }
    }
}


<三>读<<大话设计模式>>之装饰模式

学习这个模式比前几个要难点了,搞了半天才弄懂。好吧,也许是我脑子慢        装饰者模式:装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是...
  • jzhf2012
  • jzhf2012
  • 2014年10月27日 14:06
  • 1647

【大话设计模式】——装饰模式

一、概念 装饰模式(Decorator):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 二、UML图 Component(被装饰对象基类): 定义对象...
  • successA
  • successA
  • 2014年05月30日 18:51
  • 1240

大话设计模式C++实现-第6章-装饰模式

一、UML图 二、概念 装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 三、说明 角色: (1)Component是定义一个对象,可以给这些对象动态地添...
  • XD_lixin
  • XD_lixin
  • 2014年12月11日 15:16
  • 1498

大话设计模式--装饰模式C++版

  • 2012年01月31日 16:32
  • 28KB
  • 下载

大话设计模式c++实现——装饰模式

// designpattern6_decorator.cpp : 定义控制台应用程序的入口点。 //装饰模式: // //装饰模式是为已有的功能动态的添加更多功能的一种方式。 //有效的把类...
  • Watson2016
  • Watson2016
  • 2016年07月06日 11:44
  • 271

《大话设计模式》之装饰模式

1.定义 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。 2.针对问题主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且...
  • TingBen
  • TingBen
  • 2017年11月28日 15:35
  • 60

大话设计模式,让你的代码更完美2---嵌套装饰模式

代码编写方式进阶2 需求:编写一个类似于qq秀系统的穿衣系统 初学者代码: 人物类: class Person { private string name; ...
  • u012605477
  • u012605477
  • 2017年05月09日 15:13
  • 187

大话设计模式C++版——装饰模式

女人常说男人喜新厌旧,只见新人笑,那闻旧人哭,但装饰模式(Decorator)却是一种结交新朋友不忘老朋友的设计模式,非常适合去古代当老公(现代是不行的,因为只能娶一个老婆了)。装饰模式的本质是每一个...
  • gufeng99
  • gufeng99
  • 2015年07月04日 10:17
  • 809

大话设计模式读书笔记(四) 装饰模式

装饰模式、IO流中的装饰模式。
  • xsyfl
  • xsyfl
  • 2017年04月05日 20:17
  • 109

大话设计模式之装饰模式代码实现-OC版

这篇文章是我对大话设计模式-装饰模式中所举三个例子的OC代码实现,所以配合大话设计模式这本书来阅读更容易理解装饰模式的概念。OK,按照本书的思路,让我们首先来看一下‘小菜扮靓第一版’的代码实现: ...
  • qingya00
  • qingya00
  • 2015年05月21日 21:06
  • 300
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:大话设计模式之装饰模式
举报原因:
原因补充:

(最多只允许输入30个字)