puremvc源码阅读
1.mediator作为ui管理器,是设计成可以list多个notification
2.所有ui想要监听notification,都需要register到facade中
3.puremvc只负责消息的方法和接受,但不负责显示列表的管理,所以对于ui,还需要自己addchild
4.INotifier发送消息,消息是原始数据。mvc内部把消息封装成Notification,进一步传递到别的模块。
5.IFacade继承自INotifier
6.controller继承自icontroller,它管理所有的command,在register一个command的时候,会在关联的view上register一个observer
7.model继承自imodel,它管理所有的proxy,在register一个proxy的时候,会调用proxy的initializeNotifier方法
8.view继承自iview,它管理所有的modiator,在register一个mdiator的时候,会调用mediator的initializeNotifier方法。
9.view在register mediator的同时,也会把mediator感兴趣的listnotification注册进observer.view也管理了一个observer列表。
10.initializeNotifier用来初始化multitonKey
11.controller model view作为manager只是继承了各自的interface,并且都有一个name,就是multitionkey
command proxy mediator作为被管理者都继承了inotifier
当proxy mediator被添加到manager的时候,manager会用自身的name(即multitionkey)初始化它们的name
12.command在每次触发的时候,都会new一个出来
13.command的执行也是通过observer的包装进行的。observer的代码是在view里的,这里单独提出来是否可以更好?
14.observer的删除也比较巧妙,比较的是消息接受的对象
15.IAsyncCommand的扩展,碰到IAsyncCommand,那么就需要等这个IAsyncCommand执行完才能执行后面的command
总结:
阅读puremvc也只是对mvc多了一层理解,只要在项目开发中遵循了mvc的思想,不一定非要采用puremvc框架。而且puremvc会导致要创建很多的类,代码的职权并没有明确划分,个人感觉有些鸡肋。
puremvc源码阅读的更多相关文章
- 【原】FMDB源码阅读(三)
[原]FMDB源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 FMDB比较优秀的地方就在于对多线程的处理.所以这一篇主要是研究FMDB的多线程处理的实现.而 ...
- 【原】FMDB源码阅读(二)
[原]FMDB源码阅读(二) 本文转载请注明出处 -- polobymulberry-博客园 1. 前言 上一篇只是简单地过了一下FMDB一个简单例子的基本流程,并没有涉及到FMDB的所有方方面面,比 ...
- 【原】FMDB源码阅读(一)
[原]FMDB源码阅读(一) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 说实话,之前的SDWebImage和AFNetworking这两个组件我还是使用过的,但是对于 ...
- 【原】AFNetworking源码阅读(六)
[原]AFNetworking源码阅读(六) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这一篇的想讲的,一个就是分析一下AFSecurityPolicy文件,看看AF ...
- 【原】AFNetworking源码阅读(五)
[原]AFNetworking源码阅读(五) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇中提及到了Multipart Request的构建方法- [AFHTTP ...
- 【原】AFNetworking源码阅读(四)
[原]AFNetworking源码阅读(四) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇还遗留了很多问题,包括AFURLSessionManagerTaskDe ...
- 【原】AFNetworking源码阅读(三)
[原]AFNetworking源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇的话,主要是讲了如何通过构建一个request来生成一个data tas ...
- 【原】AFNetworking源码阅读(二)
[原]AFNetworking源码阅读(二) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇中我们在iOS Example代码中提到了AFHTTPSessionMa ...
- 【原】AFNetworking源码阅读(一)
[原]AFNetworking源码阅读(一) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 AFNetworking版本:3.0.4 由于我平常并没有经常使用AFNetw ...
随机推荐
- sql 取前一年、月
SQL SERVER 提供了一些时间函数:取当前时间:SELECT GETDATE() 取前一个月的时间:SELECT DATEADD(MONTH,-1,GETDATE()) 月份减一个月取年份:SE ...
- mysql查询日期内的所有日期代码
一.MYSQL查询最近的三个月份的简便方法: select date_format(curdate(),'%Y-%m') from dual union MONTH),'%Y-%m') from du ...
- Excel转化成DataTable实现:NPOI和OLEDb
使用两种方式实现的excel数据转化成DataSet,再结合前一篇的DataTable转化为实体,就可以解决excel到实体之间的转化. 代码如下: 首先定义一个接口: public interfac ...
- Generator 函数的语法
简介 § ⇧ 基本概念 Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同.本章详细介绍 Generator 函数的语法和 API,它的异步编程应用请看< ...
- css实现一色多变化
.pesudo{ position: absolute; top:50%; left: 50%; transform:translate(-50%,-50%); width: 120px; paddi ...
- Kotlin------类和对象(一)
类声明 和Java一样,Kotlin中使用关键字class来声明一个类.如下即是声明一个最简单的没有任何属性和方法的类 // 没有任何属性.方法的Invoice 类 class Invoice {} ...
- Spoj-COINS-记忆化dp
COINS - Bytelandian gold coins #dynamic-programming In Byteland they have a very strange monetary sy ...
- psd-面试-dp/LCS
链接:https://www.nowcoder.com/acm/contest/90/D来源:牛客网 掌握未来命运的女神 psd 师兄在拿了朝田诗乃的 buff 后决定去实习. 埃森哲公司注册成立于爱 ...
- bzoj 1996 区间dp
1996: [Hnoi2010]chorus 合唱队 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 1727 Solved: 1115[Submit][ ...
- Day10 - Python异步IO、Pymysql、paramiko、
IO多路复用: 参考博客:http://www.cnblogs.com/wupeiqi/p/6536518.html socket客户端(爬虫): http://www.cnblogs.com/w ...