首页 > 代码库 > 管道-过滤器模式

管道-过滤器模式

  如果项目中的功能要求需要经过一系列的处理。可以采用管道-过滤器模式组织这些处理。每一个处理就是一个过滤器。组织过滤器的管线对象就是管道。

  管道模式适用于一系列确定/已知的步骤处理。

     原始的管道模型可以像下面这样:

 

 /// <summary>    /// 处理消息    /// </summary>    public abstract class Context    {    }    /// <summary>    /// 过滤器    /// </summary>    /// <typeparam name="T"></typeparam>    public interface IFilter<T> where T : Context    {        T Handle(T message);    }    /// <summary>    /// 管道    /// </summary>    /// <typeparam name="T"></typeparam>    public class PipeBase<T> where T : Context    {        protected IList<IFilter<T>> filter = new List<IFilter<T>>();        public T Message { set; get; }        public void ProcessHandle()        {            foreach (var s in filter)            {                s.Handle(Message);            }        }        public void AddFilter( IFilter<T> f )        {        }        public void RemoveFilter(IFilter<T> f)        {        }    }

asp.net的请求事件  就是一个管道-过滤器模式,通过一系列的管道事件处理HttpContext

 

管道-过滤器模式