大话设计模式之装饰模式

转载 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()
        {

        }
    }
}


相关文章推荐

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

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

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

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

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

// designpattern6_decorator.cpp : 定义控制台应用程序的入口点。 //装饰模式: // //装饰模式是为已有的功能动态的添加更多功能的一种方式。 //有效的把类...

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

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

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

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

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

这篇文章是我对大话设计模式-装饰模式中所举三个例子的OC代码实现,所以配合大话设计模式这本书来阅读更容易理解装饰模式的概念。OK,按照本书的思路,让我们首先来看一下‘小菜扮靓第一版’的代码实现: ...

大话设计模式06----装饰模式

大话设计模式 1 UML图 2 装饰模式C++代码实现 //Component类 class Component { public: virtual void Operation()...

大话设计模式_装饰模式

小菜要去见漂亮女孩,不知道穿什么衣服好,就开始一件一件的开始搭配,实验出最好效果的搭配... package com.wzs.design; /** * 大话设计模式--page53 装饰模式 ...
  • adam_zs
  • adam_zs
  • 2013年03月08日 23:15
  • 1351

大话设计模式之装饰模式

装饰,字面意思是对生活用品或生活环境进行艺术加工的手法。它必须与所装饰的客体有机地结合,成为统一、和谐的整体,以便丰富艺术形象,扩大艺术表现力,加强审美效果,并提高其功能、经济价值和社会效益。我们编程...

大话设计模式java版本 第六章 装饰模式

装饰模式在web开发中尤其常见,在filter中,用的就是装饰模式,在excute前后添加过滤的方法。 package decorator;public class Person { priv...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:大话设计模式之装饰模式
举报原因:
原因补充:

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