zoukankan      html  css  js  c++  java
  • 装饰者模式

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

    //装饰者模式
    namespace designMode
    {
    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.WriteLine(
    "大T恤");
    base.Show();
    }
    }
    }

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

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

    class WearSuit : Finery
    {
    public override void Show()
    {
    {
    Console.WriteLine(
    "西装");
    base.Show();
    }
    }
    }

    class WearTie : Finery
    {
    public override void Show()
    {
    {
    Console.WriteLine(
    "领带");
    base.Show();
    }
    }
    }

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

    }

      

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

    namespace designMode
    {
    class Program
    {
    static void Main(string[] args)
    {

    //装饰者模式
    Person xc = new Person("小菜");
    Console.WriteLine(
    "\n第一张装扮:");

    WearSneakers pqx
    = new WearSneakers();
    BigTrouser kk
    = new BigTrouser();
    TShirts dtx
    = new TShirts();

    pqx.Decorate(xc);
    kk.Decorate(pqx);
    dtx.Decorate(kk);
    dtx.Show();

    Console.WriteLine(
    "\n第二种装扮:");

    WearLeatherShoes px
    = new WearLeatherShoes();
    WearTie ld
    = new WearTie();
    WearSuit xz
    = new WearSuit();

    px.Decorate(xc);
    ld.Decorate(px);
    xz.Decorate(ld);
    xz.Show();

    Console.Read();
    }
    }
    }

      

  • 相关阅读:
    Android SDK 国内镜像及配置方法
    Python多线程学习
    JProfiler 8下载地址和注册码
    Python自动化测试工具Splinter简介和使用实例
    linux系统新建用户ssh远程登陆显示-bash-4.1$解决方法
    Linux系统安装VMware Tools
    CentOS minimal网络设置
    接口测试之webservice
    VirtualBox-Linux系统安装增强功能
    PhantomJS快速入门
  • 原文地址:https://www.cnblogs.com/cjingzm/p/2124395.html
Copyright © 2011-2022 走看看