MVC -设计模式之王
Model View Controller 是Cocoa的基石之一,且毫无疑问的是所有设计模式中最常用的设计模式,它根据你的应用中的一般角色去分类对象,鼓励在完全分离的模式下分角色。
Model:这个对象hold住你的应用数据,且定义如何去操作它,例如本例中就是Album类。
View:这个对象掌管了Model的可视化显示,和控制用户的交互,基本上所有的都是UIView和它的子类。在本例中这个就是被分离成的AlbumView类。
Controller:控制器是调节所有工作的调节器,它访问模型中的数据,然后用视图去显示它,根据要求监听事件和操作数据。你能想象在这个哪个是Controller么,就是ViewController.
视图和模型通过控制器去交流的场景可以被描述成以下图:
如果在Model中有任何数据变化,那么它就会通知Controller,反过来,Controller更新在View中的数据,View可以通知Controller关于用户的行为,然后Controller要么根据需要或者检索要求的数据去更新Model。
你也许会怀疑为什么不只是创建了Controller然后将View和Model一起放到里面去实现?那样看起来不是更容易么?
这所有的所有都是为了是代码分离化和提高可重用性。理想情况下,视图应该会从Model中完全分离出来,如果视图不依赖于某个具体的Model的实现部分,那么它可以用不同的Model去展示其他一些数据来实现它的可重用性。
例如:如果将来你想添加一些电影和书籍到你的库中去,你仍然可以使用相同的AlbumView去展示你的电影和书籍的对象,更进一步说,如果你想去创建一个工程去处理专辑,你可以很简单的去重用你的Album类,因为它不依赖于任何一个视图。这就是MVC的魔力。
首先,你需要确保你的工程中的每一个类都是Controller,或者View,或者Model,不要讲任何两个中的角色的任务连接在一块,通过创建Album和AlbumV类你已经做了一个很好的工作。
其次,为了确保遵守这个工作方法,你应该创建三个工程组去hold住你的代码,每类一个分组。
按住Command+option+N键,创建一个组,名为Model,同样创建View和Controller,将Album.h和Album.m拖入Model中,拖动AlbumView.h和AlbumView.m的视图组,最后拖ViewController.h和ViewController.m到控制器组.
这时候你的工程结构应该看起来是这样的:
现在看起来没有那些文件浮在四周,看着好多了。显然你可以有其他的组和类,但是这个应用中的核心就是包含在这三个类中的。
既然你的组成部分已经被组织起来了,你需要从别的地方去获得album的数据,你将会创建一个API类去在全部的代码中去管理这些数据-这将会在你的下一个设计模式-单例中得到展示。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前题目:MVC-设计模式之王-创新互联
本文网址:https://www.cdcxhl.com/article4/ddhjoe.html
成都网站建设公司_创新互联,为您提供App设计、微信公众号、ChatGPT、软件开发、全网营销推广、网站导航
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联