zoukankan      html  css  js  c++  java
  • 不定的多条件的过滤

    不定条件的,多条件的过滤删除,显然如果用if...else可以实现可是,现在的要求是实现条件的随意添加,这样的程序,我们怎么样实现灵活的扩展性呢?准备用装饰模式搞一下》代码如下:

    定义一个接口:

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

    namespace ConsoleApplication1
    {
        interface IFilterCondition
        {
            Ware Filter();
        }
    }

    实现一个条件:

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

    namespace ConsoleApplication1
    {
        public class FilterCondition : IFilterCondition
        {
            private Ware _ware;
            public FilterCondition(Ware ware)
            {
                this._ware = ware;
            }

            public Ware Filter()
            {
                if (_ware.Wid == 1)
                {
                    return _ware;
                }
                return null;
            }


        }
    }
     实现第二个条件:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication1
    {
        public class FilterCondition2:IFilterCondition
        {

            private Ware _ware;
            public FilterCondition2(Ware ware)
            {
                this._ware = ware;
            }

            #region IFilterCondition 成员

            public Ware Filter()
            {
                if (_ware.Wname == "1")
                {
                    return _ware;
                }
                return null;
            }

            #endregion
        }
    }
    要过滤的实体:

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

    namespace ConsoleApplication1
    {
        public class Ware
        {
            private string wname;

            public string Wname
            {
                get { return wname; }
                set { wname = value; }
            }
            private int wid;

            public int Wid
            {
                get { return wid; }
                set { wid = value; }
            }

        }
    }
     接下来要过滤了:

                Ware ware = new Ware();
                ware.Wid = 1;
                ware.Wname = "1";
                IFilterCondition filter = new FilterCondition(ware);
                Ware ware3 =  new FilterCondition2(filter.Filter()).Filter();
    当然代码还有很多的问题,不满足条件会返回null

    相信大家自己能完善吧!

  • 相关阅读:
    四种会话跟踪技术的对比
    【转载】.NET中使用Redis
    【转载】Windows平台下利用APM来做负载均衡方案
    【转载】Windows平台分布式架构实践
    MVC插件式开发平台
    如何用JS和HTML 做一个桌面炒股小插件【原创】
    如果用HTML5做一个在线视频聊天【原创】
    BraveOS正式版发布,希望大家下载使用
    短期将不再更新更多内容,见谅!
    打造自己的移动绿色版 Python 环境
  • 原文地址:https://www.cnblogs.com/liyonghui/p/2020084.html
Copyright © 2011-2022 走看看