如果项目中的功能要求需要经过一系列的处理。可以采用管道-过滤器模式组织这些处理。每一个处理就是一个过滤器。组织过滤器的管线对象就是管道。
管道模式适用于一系列确定/已知的步骤处理。
原始的管道模型可以像下面这样:
/// <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
时间: 2024-12-25 01:39:40