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

    关于装饰器模式

    terrylee大哥的这篇文章已经说的很详细了

      http://terrylee.cnblogs.com/archive/2006/03/01/340592.html

    这里只是记录一下我自己对装饰器模式理解,实现的一个实例,方便温故而知新

    class 装饰
       {
           static void Main(string[] args)
           {
               ICar tank = new BM();//车的基本功能
               tank = new CarA(tank);//在车的基本功能上装饰上 自动档功能
               tank = new CarB(tank);//在车的基本功能和自动档功能上装饰上 定速巡航功能
               tank.Act();
               Console.ReadLine();
           }
       }
    
       public interface ICar
       {
           void Act();
       }
    
       public abstract class Car : ICar
       {
           public virtual void Act()
           {
               Console.WriteLine("基本功能");
           }
       }
    
       public class BM : Car
       {
           public override void Act()
           {
               base.Act();
               Console.WriteLine("宝马特殊功能");
           }
       }
    
       public class CarA : ICar//自动档功能装饰器
       {
           ICar car = null;
           public CarA(ICar tank)
           {
               this.car = tank;
           }
           public void Act()
           {
               car.Act();
               Console.WriteLine("装饰自动档功能");
           }
       }
    
    
       public class CarB : ICar//装饰定速巡航功能装饰器
       {
           ICar car = null;
           public CarB(ICar tank)
           {
               this.car = tank;
           }
           public void Act()
           {
               car.Act();
               Console.WriteLine("装饰定速巡航功能");
    
           }
       }
    人生无处不PK
  • 相关阅读:
    ssh 命令
    mtr 命令
    ping 命令
    curl 命令
    echo 命令
    cp 命令
    sftp服务器配置
    tomcat性能优化
    消息队列
    深度学习
  • 原文地址:https://www.cnblogs.com/ivanyb/p/2909272.html
Copyright © 2011-2022 走看看