MVC-设计模式之王-创新互联

MVC -设计模式之王

创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的漳州网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

Model View Controller 是Cocoa的基石之一,且毫无疑问的是所有设计模式中最常用的设计模式,它根据你的应用中的一般角色去分类对象,鼓励在完全分离的模式下分角色。

          Model:这个对象hold住你的应用数据,且定义如何去操作它,例如本例中就是Album类。

          View:这个对象掌管了Model的可视化显示,和控制用户的交互,基本上所有的都是UIView和它的子类。在本例中这个就是被分离成的AlbumView类。

          Controller:控制器是调节所有工作的调节器,它访问模型中的数据,然后用视图去显示它,根据要求监听事件和操作数据。你能想象在这个哪个是Controller么,就是ViewController.

视图和模型通过控制器去交流的场景可以被描述成以下图:

MVC -设计模式之王

如果在Model中有任何数据变化,那么它就会通知Controller,反过来,Controller更新在View中的数据,View可以通知Controller关于用户的行为,然后Controller要么根据需要或者检索要求的数据去更新Model。

你也许会怀疑为什么不只是创建了Controller然后将View和Model一起放到里面去实现?那样看起来不是更容易么?

这所有的所有都是为了是代码分离化和提高可重用性。理想情况下,视图应该会从Model中完全分离出来,如果视图不依赖于某个具体的Model的实现部分,那么它可以用不同的Model去展示其他一些数据来实现它的可重用性。

例如:如果将来你想添加一些电影和书籍到你的库中去,你仍然可以使用相同的AlbumView去展示你的电影和书籍的对象,更进一步说,如果你想去创建一个工程去处理专辑,你可以很简单的去重用你的Album类,因为它不依赖于任何一个视图。这就是MVC的魔力。

如何实现MVC模式

首先,你需要确保你的工程中的每一个类都是Controller,或者View,或者Model,不要讲任何两个中的角色的任务连接在一块,通过创建Album和AlbumV类你已经做了一个很好的工作。

其次,为了确保遵守这个工作方法,你应该创建三个工程组去hold住你的代码,每类一个分组。

按住Command+option+N键,创建一个组,名为Model,同样创建View和Controller,将Album.h和Album.m拖入Model中,拖动AlbumView.hAlbumView.m的视图组,最后拖ViewController.hViewController.m到控制器组.

这时候你的工程结构应该看起来是这样的:

MVC -设计模式之王

现在看起来没有那些文件浮在四周,看着好多了。显然你可以有其他的组和类,但是这个应用中的核心就是包含在这三个类中的。

既然你的组成部分已经被组织起来了,你需要从别的地方去获得album的数据,你将会创建一个API类去在全部的代码中去管理这些数据-这将会在你的下一个设计模式-单例中得到展示。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:MVC-设计模式之王-创新互联
本文路径:http://azwzsj.com/article/ddhjoe.html