变动-反馈机制,POSA经典MVC和COM 连接点的一点点比较

2024-02-21 15:08

本文主要是介绍变动-反馈机制,POSA经典MVC和COM 连接点的一点点比较,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关键词:POSA 系统构架 分层 Architecutre Pattern Layer 交互式系统 MVC PME COM IConnectionPoint 连接点

MVC泛滥,Observer模式被滥用,COM连接点似乎很复杂。特小结了一下。没什么新意。高手勿看。

一、POSA 经典MVC
1.Model 负责处理,并通知View和Controller来更新(如通知View更新数据和Controller禁止某个功能以禁止某个输入)
2.View 负责输出,并初始化和自己一一对应的Controller
3.Controller负责输入,并转换为相应的事件,然后调用View(如滚动界面)或者Model(处理数据)并由后者来通知Observers。数据是什么,需要Observer主动来取,Model只是通知并要求Observer Update一下。是粗力度的Callback机制。

二、COM连接点
1.Sink-和MVC不同的是,COM实现了细力度的Callback机制,也就是Sink接口-一组回掉函数。当Model通知View来更新时候,COM直接访问View实现的Sink接口的函数。Sink由View实现,并由Model定义(其实哪个定义还不是一样)。View通过IQueryInterface得到Model,并实现Model定义的Sink后订阅事件。
2.ConnectionPoint-和MVC一样,实现了Observer模型,接受符合Sink接口规范的Observer(View/Controoler)的bind/unbind(advice/unadvice)。为了支持多个View,所以做了一个IConnectionPointContainer。

三、情景小节
1.如果Observer(View/Controller)请求的是服务,Model只是返回一个state,那么就用粗力度的经典接口实现。数据还是由Model来处理和存储。
2.如果Observer(View/Controller)请求的数据不是Model认识的东西,Model不负责(其实也负责一些,如内存pool,当然如果AOP了,就真的不用了),如Model收到的网络数据包,就直接通过Callback回给Observer,没必要先Update一下,然后Observer来个getData。这种情况适合细力度的接口。【网络层一般负责数据的send/recv,差错处理和完整性分析也可以放到网络层,当然需要内存pool的支持。数据分析好后,放入队列,然后通知Observer,Observer来队列getData也可以啦

这篇关于变动-反馈机制,POSA经典MVC和COM 连接点的一点点比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/732190

相关文章

java中反射(Reflection)机制举例详解

《java中反射(Reflection)机制举例详解》Java中的反射机制是指Java程序在运行期间可以获取到一个对象的全部信息,:本文主要介绍java中反射(Reflection)机制的相关资料... 目录一、什么是反射?二、反射的用途三、获取Class对象四、Class类型的对象使用场景1五、Class

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

基于@RequestParam注解之Spring MVC参数绑定的利器

《基于@RequestParam注解之SpringMVC参数绑定的利器》:本文主要介绍基于@RequestParam注解之SpringMVC参数绑定的利器,具有很好的参考价值,希望对大家有所帮助... 目录@RequestParam注解:Spring MVC参数绑定的利器什么是@RequestParam?@

Spring MVC跨域问题及解决

《SpringMVC跨域问题及解决》:本文主要介绍SpringMVC跨域问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录跨域问题不同的域同源策略解决方法1.CORS2.jsONP3.局部解决方案4.全局解决方法总结跨域问题不同的域协议、域名、端口

Nginx之upstream被动式重试机制的实现

《Nginx之upstream被动式重试机制的实现》本文主要介绍了Nginx之upstream被动式重试机制的实现,可以通过proxy_next_upstream来自定义配置,具有一定的参考价值,感兴... 目录默认错误选择定义错误指令配置proxy_next_upstreamproxy_next_upst

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

一文详解Java Condition的await和signal等待通知机制

《一文详解JavaCondition的await和signal等待通知机制》这篇文章主要为大家详细介绍了JavaCondition的await和signal等待通知机制的相关知识,文中的示例代码讲... 目录1. Condition的核心方法2. 使用场景与优势3. 使用流程与规范基本模板生产者-消费者示例