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();
    }
    }
    }

      

  • 相关阅读:
    孔曰成仁,孟曰取义
    mysql索引&实现原理
    MySQL存储引擎
    HashMap原理
    反射
    list对象属性排序
    mysql数据表操作&库操作
    mysql字段类型
    java线程池初步理解
    java四种内部类
  • 原文地址:https://www.cnblogs.com/cjingzm/p/2124395.html
Copyright © 2011-2022 走看看