11中常用框架模式
1. 提供程序模式
- 使其功能变灵活。
- 实现延伸到外部,暴露给客户端。
- 个性化扩展需求.
2. 链式编程模式
- 处理逻辑时流式,连贯的。
- 大的功能或者问题域分解为小的问题,每个问题域之间没有前后依赖关系。
- 传统方式或者扩展方法实现,传统方法返回本this。
- 一般用于验证处理。
3. 管道模式
- 抽象出一个逻辑管道,信息从一端进入,中间经过定制环节处理,从另一端出去。
- 管道从复杂程度分为带有客户端和服务端的凹形管道,一般处理复杂的消息处理,另一种是类型队列的直线管道模型,一般用来做消息推送。
- 管道根据类别又分为自治管道和约定管道,自治管道各个组成模块都由自己控制,有自己决定管道内部结构以及执行流程;约定管道有一定封装逻辑,提供出来的接口和内部逻辑完成整个管道处理。使用中区别是自治管道自己往管道中添加委托对象,扩展点需求多变化时使用,约定管道内部公布一组管道生命周期事件,自己绑定所需事件,使用约定管道保证正确逻辑不被打乱。
4. 逻辑上下文模式
- 关于上下文的概念,上下文就是一个范围,对这个范围进行一个策略的配置,只要进入该范围的逻辑都会感知到这个上下文策略,并且配合它一起完成任务,上下文策略是约束这个范围中的逻辑行为的一种规则。
- 逻辑上下文的作用就是将散落的代码结构聚集在一起,按照一个规则彼此协调完成一项整体工作,且代码出了这个范围自动释放占用上下文资源。例如事物处理。
5. 钝化程序模式
- 钝化模式即当程序执行到一定阶段,停止,交由下一个业务终端继续执行。停止时保留,持久化当前的状态。
- 在CSharp中通常使用委托将整个业务流程串联起来,利用委托的可序列化特性,将委托当成索引直接序列化后保存在一种媒介中(例如xml),任何中断只要访问到这个持久化数据就可以进行流程重组。
6. 规则外挂模式
- 当业务规则会根据特定环境动态变化时,使用规则外挂模式快速的替换系统中任意一个业务规则,提高系统扩展性。
- 利用业务规则易变化,业务逻辑不易变化,可以将业务规则动态注入,通过规则外挂模式将静态的代码(逻辑)和动态的代码(规则)粘合在一起。此模式主要用于长期运行,具有状态的管理流程下。
7. 语句组件模式
- 语句组建模式将所有无法变化,无法保存的代码进行对象化,让它脱离栈基于对象。
- 基于钝化模式,将基于栈语句代码对象化为语句组件。这些组件有很强的生命周期,每一个语句组件中都保存着各自的状态数据,可以下次恢复时继续执行。
- 语句组件的特点是,使执行代码变得可控,改模式用于工作流引擎框架。
8. 面向契约模式
- 借鉴于生活中的契约/合同关系思想,提供的服务接口都遵循一个契约,这个契约会在内部自动检查你是否满足了契约约定的条目,确定所调用服务接口是否能成功。
- 契约条目检查器,检查契约使用是否正确。分为条件检查器验证请求接口的条件是否满足,后置条件检查器验证返回的数据是否满足契约。
- 一般用于SOA架构中,使程序更为稳定,系统边界更为清晰。
9. 异步消息事件驱动模式
- 将直接调用服务的方式改变为实用消息来代替,不直接对服务调用,将调用参数发送到一个可以存放参数的容器中,这个消息容器再通过事先注册好的时间来通知最终处理者。
- 异步消息事件驱动模式作为中间层框架设计模式,可以解除调用者和被调用者的耦合,可以动态的处理修改消息处理者,可以实现多热点消息传输。
- 用到的场景为消息队列的设计。
10. 总线消息路由模式
- 分发客户端的消息调用,所有客户端请求都请求到一个消息总线中,然后消息总线通过总线路由进行后台服务寻址。
- 在中间层添加一个总线的概念,使客户端不必关心请求繁多的服务,使多对多的模式变为一对多的模式。
11. 元数据及元数据缓存池模式
- 所谓元数据是对数据的描述数据,它本身也是一组明确定义的数据结构。
- 元数据作为中间层,将在运行时才可以决定下来的东西借助元数据描述生成,同时放在元数据缓存池中,下次可以直接使用生成的元数据。
- 元数据缓存池模式使用一个元数据中间层使谁变得柔性,不污染领域代码的同时,实现特定的功能。
Demo地址:https://github.com/madeinchinalmc/Framepattern.git