学习了一下PureMVC,写了笔记:读书笔记:puremvc framework implementation idioms and……。以下是对PureMVC的一些印像:
优点:
一、模式用得多,看文档的过程感觉就像把23种基本模式复习了一次。[用了多少模式,具体没数过。但23种模式中,也用得七七八八了]。所以就算学了PureMVC后不使用也不浪费学习时间。
二、解耦,整个系统都由中间层及Notification机制解耦了。[是否解耦得太过份了?]
缺点:
1、角色(类形)太多,角色间关系复杂(一对多,多对多)。
2、过份依赖观察者模式、配置零散、不方便维护及调试:
一、PureMvc推崇的是解耦,但解耦直接的结果就是单靠IDE(ctrl+点击)根本找不到代码调用的路线。代码每到一处就是发送一个Notification。然后调用路线就断了。要继线就要找配置。看了官方的demo(appskeleton),配置的地方是分散的。Command在facade中的配置,Mediator中对notification的配置、Proxy……。
二、别人可能说,UI本来就是事件模型。调用关系本来就没有服务端明确。其实这个不一定。如果把事件限制在一些特定层中,调用关系还是很明确的。
3、需要编写的额外代码烦多。
4、不提供额外功能。
Spring提供声名式事务支持。Hibernate简化持久层操作。PureMVC提供什么额外功能?
以下是我对框架中一些角色的理解:
一、Mediator的角色我基本认同。它把mxml元素布局与as逻辑分开。但对Mediator中的Notification的映射我觉得这些是多余代码。而switch结构用在这里,我觉得也不优美。另外在调用proxy时,先从facade获取obj,再转形为实现类,转了一大圈回到了原点,显得多余。而这种转化与Spring的工厂也没有可比性。
二、Proxy的角色我也免强认同。Proxy的作用类似于服务端的“瘦模型”。Model只用作数据容器,Proxy处理域逻辑。“瘦模型”用在客户端。其实也可以。但在proxy发送notification。我反对,我上面说过,事件(观察者模式)用在特定层可以接受,但事件惯穿业务层、惯穿整个系统。我反对。
三、Command的角色我也认同。其实就是业务层,没什么可说的。
四、facade的角色我不认同。反正代码最后import的都是实现类。这个facade不多余吗?
五、Notification这个角色我不认同。as已内置事件模式,没必要自已增加一个观察者模块。另外notification的用法,我也不认同。
总结:PureMVC的作用很大程度上是解耦。但我对这种解耦程度很有疑问。它带来的好处与它带来的缺点比例多大?
最后虽然我对PureMVC持反对态度,但存在即合理,而且有这么多人支持。PureMVC也肯定有他的过人之处。希望有PureMVC实践经验的出来指导指导。
分享到:
相关推荐
标题 "PureMVC 中文版" 指的是 PureMVC 框架的一个中文版本,这是一款广泛应用的开源框架,特别设计用于构建富互联网应用程序(RIA),尤其是基于Adobe Flex和ActionScript 3的项目。PureMVC 提供了一种模块化、结构...
标题中的“可以运行的PureMVC的登陆实例”是指一个基于PureMVC框架的登录功能实现,这个实例已经经过验证可以在FlexBuilder3环境下正常运行。PureMVC是一种经典的多层应用架构模式,它为ActionScript、JavaScript、...
若是想使用,可以直接查看网上的pureMVC 文档,我并未对任何一个函数改名或者更换参数位置。 注意,这个PureMVC中的 class(ClassName, BaseName) 函数并不提供,因为此框架本意就是为了用于cocos2d-x-lua中。
在PureMVC中,模型由`Proxy`类表示,它们存储和处理数据,同时提供对数据的访问接口。当数据发生变化时,Proxy会通过`Notification`通知控制器。 2. **视图(View)**:视图层负责展示用户界面和管理界面组件。Pure...
7. **源码分析**:可能对PureMVC的源码进行解析,帮助理解其内部机制和设计理念。 8. **文档阅读指南**:如何理解和使用提供的PureMVC官方文档,以获取更多关于框架的信息。 通过学习PureMVC,开发者可以获得一种...
在Qt环境中,PureMVC提供了对C++语言的支持,使得开发者可以利用其强大的功能和面向对象的特性,同时利用PureMVC的组织结构。这个版本的PureMVC允许开发者更专注于业务逻辑,而不是关注如何把各个组件绑定在一起。 ...
同时,由于PureMVC框架的轻量级特性,对性能的影响较小,适合各种规模的游戏项目。通过理解并熟练运用PureMVC的各个组成部分,开发者可以更高效地组织代码,实现UI和逻辑的分离,从而专注于创造引人入胜的游戏体验。...
**纯MVC(PureMVC)AS3版详解** PureMVC是一款轻量级的框架,主要用于实现Model-View-Controller(MVC)设计模式。它最初由Dan Varga创建,旨在提供一种跨平台的解决方案,使开发人员能够更有效地组织和管理应用...
"表示这不仅仅是一个概念介绍,还提供了实际的代码示例,学习者可以直接查看和运行这些源代码,加深对PureMVC的理解。 标签进一步细化了主题,"csharp"指明是C#语言相关,"puremvc"是框架的名字,"puremvc_c"和...
PureMvc是一个开源的、轻量级的框架,用于构建多层结构的富客户端应用程序。它遵循Model-View-Controller(MVC)设计模式,并提供了一种...记住,实践是最好的老师,尝试修改和扩展这个例子,以加深对PureMvc的理解。
**PureMVC框架详解** PureMVC是一种轻量级、模型-视图-控制器(MVC)框架,最初是为ActionScript开发的,后来被移植到多种编程语言中...此外,还可以尝试扩展这个例子,添加更多功能,以加深对PureMVC和Qt集成的理解。
在PureMVC中,模型由`IProxy`接口实现的类组成,它们提供了对数据的访问和管理。模型对象通常不直接与视图或控制器交互,而是通过发布通知(Notifications)来传递数据变化。 2. **视图(View)**:视图层负责展示...
《深入理解PureMVC:基于五子棋游戏的源码分析》 PureMVC是一个流行的、开源的、轻量级的、跨平台的MVC框架,它为开发人员提供了一种结构化的编程模式,用于组织和管理应用程序的业务逻辑、用户界面和数据。在这个...
在描述中提到了一个博客链接,虽然具体内容未给出,但可以推测这篇博客可能提供了额外的学习资源或者对PureMVC的深入解读。iteye是中国知名的技术社区,博客作者通常会分享自己的编程经验和心得,这对于理解PureMVC...
【PureMVC学习指南】 PureMVC是一款轻量级的框架,主要应用于Flex和AS3开发,它基于...PureMVC_Study这个压缩包文件可能是对PureMVC框架的实例演示或者学习资料,可以帮助开发者进一步了解和掌握PureMVC的使用方法。
纯MVC(PureMVC)是一个轻量级的框架,用于构建基于模型-视图-控制器(Model-View-Controller)设计模式的应用程序。这个框架最初是为ActionScript编程语言设计的,但后来被移植到了多种其他编程语言中,包括Java、...
以下是 PureMvc 的一些关键知识点: 1. **核心组件**:PureMVC 包含了四个主要组件:Model(模型)、View(视图)、Controller(控制器)和 Proxy(代理)。它们共同协作以实现松耦合的架构。 - **Model**:负责...
在Unity中,PureMVC提供了对游戏逻辑的高效管理,使得开发者可以专注于游戏业务逻辑而不是底层架构。通过使用PureMVC,开发者可以创建出更清晰、更易于扩展和维护的游戏项目。 在压缩包中的“PureMVC”文件可能包含...
标题中的“一个很好的puremvc实例”表明我们即将探讨的是关于PureMVC框架的实际应用案例。PureMVC是一个轻量级的、跨平台的MVC(Model-View-Controller)设计模式实现,它主要应用于创建复杂但组织良好的应用程序...
PureMVC是一个多范式、轻量级的框架,它主要设计用于构建应用程序的模型-视图-控制器(MVC)结构。这个框架的核心理念是将应用程序的不同部分解耦,以便于开发、维护和扩展。在C++版本的PureMVC中,它充分利用了面向...