河水加工成加工成自来水(用装饰模式实现)

装饰模式有四个重要角色:   抽象构件角色:  Water     具体构件角色 :   StreamWater       抽象装饰角色:  WaterDecorators            具体装饰角色:     FilterApparatus       日常生活中我们用的自来水的一个加工过程:  水是一个抽想的一个对象他拥有具体水的方法,和属性,在这里我们有一个具体的水对象,StreamWater (河水),我们希望将具体的水对象加工,而不去修改这个具体的水对象中的行为和方法,在这里有一个很重要的一个角色抽象装饰角色,(抽象装饰角色有两个很重要的特征:1.她继承抽象构件角色,2.她拥有构件的引用) ,她好比加工机器  加工机器一听就是一个很抽象的名词,所以每个具体的加工机器(FilterApparatus )都要继承这个抽象机器(WaterDecorators) ,这样具体你只要将一个构件也就是(河水)放入具体的机器加工,就可以改变其行为属性. 

------------------------------------------------------

 class WaterDecorator
    {
         static void Main(string[] args) {
            StreamWater sw = new StreamWater();
            sw.handleWater();

            FilterApparatus ap = new FilterApparatus(sw);
            ap.process();
            ap.handleWater();

         }
    }
  //抽象构件
    abstract class Water {
        private double cleanliness;
         public double Cleanliness
         {
             set {
                 cleanliness = value;
                  }
             get {
                 return this.cleanliness;
              }
            }
      
        public abstract void handleWater();
      }
     //具体构件

     class StreamWater : Water{
           public StreamWater() {
                 this.Cleanliness = 45;
             }
          public override void handleWater()
          {
              Console.WriteLine("Stream water ={0}",Cleanliness);
          }
       }
     //抽象装饰

     abstract class WaterDecorators : Water{
              protected Water w;
              public WaterDecorators(Water w) {
                  this.w = w;
              }
              public override void handleWater()
              {
                  w.handleWater();
              }
           }
         //具体装饰

   class FilterApparatus : WaterDecorators {
       public FilterApparatus(Water w)
           : base(w)
        {
        }
     public void process() {
            w.Cleanliness += 50;
         }
     }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值