11中常用框架模式

11中常用框架模式

1. 提供程序模式

  • 使其功能变灵活。
  • 实现延伸到外部,暴露给客户端。
  • 个性化扩展需求.

2. 链式编程模式

  • 处理逻辑时流式,连贯的。
  • 大的功能或者问题域分解为小的问题,每个问题域之间没有前后依赖关系。
  • 传统方式或者扩展方法实现,传统方法返回本this。
  • 一般用于验证处理。

3. 管道模式

  • 抽象出一个逻辑管道,信息从一端进入,中间经过定制环节处理,从另一端出去。
  • 管道从复杂程度分为带有客户端和服务端的凹形管道,一般处理复杂的消息处理,另一种是类型队列的直线管道模型,一般用来做消息推送。
  • 管道根据类别又分为自治管道和约定管道,自治管道各个组成模块都由自己控制,有自己决定管道内部结构以及执行流程;约定管道有一定封装逻辑,提供出来的接口和内部逻辑完成整个管道处理。使用中区别是自治管道自己往管道中添加委托对象,扩展点需求多变化时使用,约定管道内部公布一组管道生命周期事件,自己绑定所需事件,使用约定管道保证正确逻辑不被打乱。

4. 逻辑上下文模式

  • 关于上下文的概念,上下文就是一个范围,对这个范围进行一个策略的配置,只要进入该范围的逻辑都会感知到这个上下文策略,并且配合它一起完成任务,上下文策略是约束这个范围中的逻辑行为的一种规则。
  • 逻辑上下文的作用就是将散落的代码结构聚集在一起,按照一个规则彼此协调完成一项整体工作,且代码出了这个范围自动释放占用上下文资源。例如事物处理。

5. 钝化程序模式

  • 钝化模式即当程序执行到一定阶段,停止,交由下一个业务终端继续执行。停止时保留,持久化当前的状态。
  • 在CSharp中通常使用委托将整个业务流程串联起来,利用委托的可序列化特性,将委托当成索引直接序列化后保存在一种媒介中(例如xml),任何中断只要访问到这个持久化数据就可以进行流程重组。

6. 规则外挂模式

  • 当业务规则会根据特定环境动态变化时,使用规则外挂模式快速的替换系统中任意一个业务规则,提高系统扩展性。
  • 利用业务规则易变化,业务逻辑不易变化,可以将业务规则动态注入,通过规则外挂模式将静态的代码(逻辑)和动态的代码(规则)粘合在一起。此模式主要用于长期运行,具有状态的管理流程下。

7. 语句组件模式

  • 语句组建模式将所有无法变化,无法保存的代码进行对象化,让它脱离栈基于对象。
  • 基于钝化模式,将基于栈语句代码对象化为语句组件。这些组件有很强的生命周期,每一个语句组件中都保存着各自的状态数据,可以下次恢复时继续执行。
  • 语句组件的特点是,使执行代码变得可控,改模式用于工作流引擎框架。

8. 面向契约模式

  • 借鉴于生活中的契约/合同关系思想,提供的服务接口都遵循一个契约,这个契约会在内部自动检查你是否满足了契约约定的条目,确定所调用服务接口是否能成功。
  • 契约条目检查器,检查契约使用是否正确。分为条件检查器验证请求接口的条件是否满足,后置条件检查器验证返回的数据是否满足契约。
  • 一般用于SOA架构中,使程序更为稳定,系统边界更为清晰。

9. 异步消息事件驱动模式

  • 将直接调用服务的方式改变为实用消息来代替,不直接对服务调用,将调用参数发送到一个可以存放参数的容器中,这个消息容器再通过事先注册好的时间来通知最终处理者。
  • 异步消息事件驱动模式作为中间层框架设计模式,可以解除调用者和被调用者的耦合,可以动态的处理修改消息处理者,可以实现多热点消息传输。
  • 用到的场景为消息队列的设计。

10. 总线消息路由模式

  • 分发客户端的消息调用,所有客户端请求都请求到一个消息总线中,然后消息总线通过总线路由进行后台服务寻址。
  • 在中间层添加一个总线的概念,使客户端不必关心请求繁多的服务,使多对多的模式变为一对多的模式。

11. 元数据及元数据缓存池模式

  • 所谓元数据是对数据的描述数据,它本身也是一组明确定义的数据结构。
  • 元数据作为中间层,将在运行时才可以决定下来的东西借助元数据描述生成,同时放在元数据缓存池中,下次可以直接使用生成的元数据。
  • 元数据缓存池模式使用一个元数据中间层使谁变得柔性,不污染领域代码的同时,实现特定的功能。

Demo地址:https://github.com/madeinchinalmc/Framepattern.git

原文地址:https://www.cnblogs.com/liumengchen-boke/p/9502042.html

时间: 2024-12-14 07:55:55

11中常用框架模式的相关文章

正则表达式中常用的模式修正符有i、g、m、s、x、e详解

正则表达式中常用的模式修正符有i.g.m.s.x.e等.它们之间可以组合搭配使用. 它们的作用如下: //修正符:i 不区分大小写的匹配; //如:"/abc/i"可以与abc或aBC或ABc等匹配; //修正符:g表示全局匹配 //修正符:m 将字符串视为多行,不管是那行都能匹配; 例://模式为:$mode="/abc/m"; //要匹配的字符串为:$str="bcefg5e\nabcdfe" //注意其中\n,换行了;abc换到了下一行;

C++11中常用的几个简写

C++11添加了很多新特性,可以使程序代码变得简洁,这些特性实用而且效率高. 不便之处是:要增加学习成本,还有你要升级你的编译器了. 目前支持C++11特性的编译器有: g++ 4.8 clang 3.3 intel 13.0 vs2012 nov ctp 目前刚接触,看看下面几个常用C++11的代码: (1)比如: vector<vector<MyType>>::const_iterator it = v.begin() 可以简写为: auto it = v.cbegin() (

NO.4 Android开发中常用框架及工具

android-pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新ListView.ViewPager.WevView.ExpandableListView.GridView.(Horizontal)ScrollView.Fragment 上下左右拉动刷新,比johannilsson那个只支持ListView的强大的多.并且他实现的下拉刷新ListView在item不足一屏情况下也不会显示刷新提示,体验更好.项目地址:https://github.com/chrisba

Java开发中的23种设计模式详解之三:11种行为型模式

本章是关于设计模式的最后一讲,会讲到第三种设计模式--行为型模式,共11种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式.这段时间一直在写关于设计模式的东西,终于写到一半了,写博文是个很费时间的东西,因为我得为读者负责,不论是图还是代码还是表述,都希望能尽量写清楚,以便读者理解,我想不论是我还是读者,都希望看到高质量的博文出来,从我本人出发,我会一直坚持下去,不断更新,源源动力来自于读者朋友们的不断支持,我会尽自己

[转]框架模式 MVC 在Android中的使用

算来学习Android开发已有2年的历史了,在这2年的学习当中,基本掌握了Android的基础知识.越到后面的学习越感觉困难,一来是自认为android没啥可学的了(自认为的,其实还有很多知识科学),二来网络上的很多框架已经帮我们做了太多的事情了,我们只需要画画UI就可以了,感觉Android开发没有太多的技术含金量.最近闲来无事,开始总结之前学过的知识点,想着是否应该学点其他的东西呢?总不能局限于Android基础知识吧.慢慢的探索发现在大的项目工程中,一个好的框架,好的设计模式,能减少很大的

关于jsp商城开发中一些常用框架的介绍

Struts跟Tomcat.Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使java商城产品以及jsp商城开发者能更深入的了解其内部实现机制.除此之外,在 java商城开发 中Struts的优点主要集中体现在两个方面:Taglib和页面导航.Taglib是Struts的标记库,比较灵活,能大大提高开发效率.另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点.struts历经6年多的发展,是目前用户数最

制作类似ThinkPHP框架中的PATHINFO模式功能(二)

距离上一次发布的<制作类似ThinkPHP框架中的PATHINFO模式功能>(文章地址:http://www.cnblogs.com/phpstudy2015-6/p/6242700.html)已经过去好多天了,今晚就将剩下的一些东西扫尾吧. 上一篇文章已经实现了PATHINFO模式的URL,即我们访问MVC模式搭建的站点时,只需要在域名后面加上(/module/controller/action)即可,很智能化.并且通过new Object时的自动触发函数实现类文件的自动载入,因此只要我们搭

框架模式 MVC 在Android中的使用

算来学习Android开发已有2年的历史了,在这2年的学习当中,基本掌握了Android的基础知识.越到后面的学习越感觉困难,一来是自认为android没啥可学的了(自认为的,其实还有很多知识科学),二来网络上的很多框架已经帮我们做了太多的事情了,我们只需要画画UI就可以了,感觉Android开发没有太多的技术含金量.最近闲来无事,开始总结之前学过的知识点,想着是否应该学点其他的东西呢?总不能局限于Android基础知识吧.慢慢的探索发现在大的项目工程中,一个好的框架,好的设计模式,能减少很大的

小试Android中使用MVC框架模式

MVC简介 关于MVC网上的说法成千上万,每个人都有自己的理解,下面只是我个人现阶段学习的理解,欢迎指出不足之处~ MVC(Model View Controller 模型-视图-控制器) Model(模型)直接操作数据层(如数据库记录的读写等),通常有最重的处理任务 View(视图) 直接面向用户数据展示界面,接受用户的数据输入并传递给控制层 Controller(控制器)业务逻辑处理层,本身不输出任何东西和做任何处理.它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示