码迷,mamicode.com
首页 > 移动开发 > 详细

IOS 电商类app 第一版架构 改进

时间:2015-10-10 21:26:13      阅读:307      评论:0      收藏:0      [点我收藏+]

标签:

http://www.cnblogs.com/loying/p/4801194.html
接着上一版 的架构。
 
问题1:
model要不要监听事件?
目前,Model需要被改变的时候是:
1、viewController请求数据时候;
2、message发生变化的时候;(比如说登陆、注销、商店切换)
 
目前的坏处:
message处,有各个model的代码;
 
        [self lyPostNotification:NOTIFY_INDEX_DATA];
        [[CartModel instance] onShopChange];
        [[CategoryDetailModel instance] onShopChange];
        [[ServiceModel instance] onShopChange];
比如说切换商店后,就有这些变换;
 
 
    [self lyPostNotification:NOTIFY_USER_LOGOUT];
    [[CartModel instance] clearCache];
    [[AddressModel instance] clearCache];
    [[UserModel instance] clearCache];
    [[OrderModel instance] clearCache];
登出后,需要把这些Model清空;
 
如果新增model比如说新添加的serviceModel,需要在message处添加相应的逻辑代码;
 
还有的问题是,Model的clearCache等函数被message调用,耦合性特别强;相当于做了事情A(登出),接着马上做事情B(清空数据),而且是直接调用,以后修改起来很容易犯错误。
 
 
设想:
如果model监听事件的话;
那么model只需监听各个事件,然后再写处理函数;
model的逻辑都聚合在自身;
 
带来的后果是,model稍微变大。多个事件,和多个处理函数。
不过这个如果是message处来调用,处理函数还是一样要写,只是多了事件处理监听的代码。
model的逻辑是聚合了,但是注销的逻辑分散了,看不出来注销完干了什么事情。这个问题好像也不是问题,因为可以查看事件的监听者,看到监听了注销事件的model。
有一处代码,集合了所有的model instance。所有的model都必须先初始化。否则无法监听事件。
 
 
 
问题2:调用message的时候,message从各个model获取了数据,那么,谁来做参数检查?
1,谁调用(不同层次之间),谁负责检查参数;比如orderMessage需要用户登录,那么调用orderMessage的时候,就必须保证已经登录。(因为message和model不在同一层次)
2,如果是检查的内容是自身内容,那么由自己负责。 
 
 
问题3:从页面A (ControllerA) 跳到 页面B(ControllerB),用户的操作数据(比如说留言),怎么合适地从A传到B?
 
 
 
 
 

IOS 电商类app 第一版架构 改进

标签:

原文地址:http://www.cnblogs.com/loying/p/4868331.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!