变动-反馈机制,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线程的周期及调度机制详解

《JAVA线程的周期及调度机制详解》Java线程的生命周期包括NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING和TERMINATED,线程调度依赖操作系统,采用抢占... 目录Java线程的生命周期线程状态转换示例代码JAVA线程调度机制优先级设置示例注意事项JAVA线程

Python中4大日志记录库比较的终极PK

《Python中4大日志记录库比较的终极PK》日志记录框架是一种工具,可帮助您标准化应用程序中的日志记录过程,:本文主要介绍Python中4大日志记录库比较的相关资料,文中通过代码介绍的非常详细,... 目录一、logging库1、优点2、缺点二、LogAid库三、Loguru库四、Structlogphp

Java中自旋锁与CAS机制的深层关系与区别

《Java中自旋锁与CAS机制的深层关系与区别》CAS算法即比较并替换,是一种实现并发编程时常用到的算法,Java并发包中的很多类都使用了CAS算法,:本文主要介绍Java中自旋锁与CAS机制深层... 目录1. 引言2. 比较并交换 (Compare-and-Swap, CAS) 核心原理2.1 CAS

Spring Boot 集成 mybatis核心机制

《SpringBoot集成mybatis核心机制》这篇文章给大家介绍SpringBoot集成mybatis核心机制,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值... 目录Spring Boot浅析1.依赖管理(Starter POMs)2.自动配置(AutoConfigu

Spring Boot/Spring MVC核心注解的作用详解

《SpringBoot/SpringMVC核心注解的作用详解》本文详细介绍了SpringBoot和SpringMVC中最常用的15个核心注解,涵盖了请求路由映射、参数绑定、RESTfulAPI、... 目录一、Spring/Spring MVC注解的核心作用二、请求映射与RESTful API注解系列2.1

Redis的安全机制详细介绍及配置方法

《Redis的安全机制详细介绍及配置方法》本文介绍Redis安全机制的配置方法,包括绑定IP地址、设置密码、保护模式、禁用危险命令、防火墙限制、TLS加密、客户端连接限制、最大内存使用和日志审计等,通... 目录1. 绑定 IP 地址2. 设置密码3. 保护模式4. 禁用危险命令5. 通过防火墙限制访问6.

JAVA实现Token自动续期机制的示例代码

《JAVA实现Token自动续期机制的示例代码》本文主要介绍了JAVA实现Token自动续期机制的示例代码,通过动态调整会话生命周期平衡安全性与用户体验,解决固定有效期Token带来的风险与不便,感兴... 目录1. 固定有效期Token的内在局限性2. 自动续期机制:兼顾安全与体验的解决方案3. 总结PS

详解Spring中REQUIRED事务的回滚机制详解

《详解Spring中REQUIRED事务的回滚机制详解》在Spring的事务管理中,REQUIRED是最常用也是默认的事务传播属性,本文就来详细的介绍一下Spring中REQUIRED事务的回滚机制,... 目录1. REQUIRED 的定义2. REQUIRED 下的回滚机制2.1 异常触发回滚2.2 回

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过