首页 > 其他 > 详细

C#装饰模式

时间:2014-03-20 18:36:25      阅读:432      评论:0      收藏:0      [点我收藏+]

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

namespace 装饰模式
{
    class Person
    {
        public Person()
        {
        }

        private string name;
        public Person(string name)
        {
            this.name = name;
        }

        public virtual void Show()
        {
            Console.WriteLine("装扮的{0}", name);
        }
    }

    class Finery : Person
    {
        protected Person component;

        //打扮
        public void Decorate(Person component)
        {
            this.component = component;
        }

        public override void Show()
        {
            if (component != null)
            {
                component.Show();
            }
        }
    }

    class TShirts : Finery
    {
        public override void Show()
        {
            Console.Write("大T-Shirt ");
            base.Show();
        }
    }

    class BigTrouser : Finery
    {
        public override void Show()
        {
            Console.Write("垮裤 ");
            base.Show();
        }
    }

    class Sneakers: Finery
    {
        public override void Show()
        {
            Console.Write("破球鞋 ");
            base.Show();
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Person ps = new Person("小江");

            Sneakers sn = new Sneakers();
            BigTrouser bt = new BigTrouser();
            TShirts ts = new TShirts();

            sn.Decorate(ps);
            bt.Decorate(sn);
            ts.Decorate(bt);

            ts.Show();
        }
    }
}

C#装饰模式,布布扣,bubuko.com

C#装饰模式

原文:http://www.cnblogs.com/fhlj/p/3613684.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!