想问问大家对此的看法。我有一个 uiimageview 子类,在它的初始化程序中,我向 imageview 添加了一些手势识别器,并且还在类中包含了手势识别器委托方法。我的问题是,这是否违反模型视图控制器?所有与控制视图有关的代码都应该在视图控制器中吗?与将按钮操作方法放入视图中相同。无论如何,有兴趣听听意见。
从某种意义上说,是的,这违反了 MVC 模式。正如您所说,视图不应该与如何控制它有任何关系,最好的习惯是将此类代码分组到应用程序的另一部分。
而且,OOP 的一大优点是能够重用类。这样的视图可以毫无问题地重用,因为所有控制代码(特定于应用程序)都不在其中。
如果您在视图中包含委托方法,您将无法重用它,或者每次都必须更改委托方法!
但规则适用于一般情况。看一下 Mac OS X 的 Cocoa 框架:您已经获得了 cocoa 绑定,它允许您直接更改视图内容以响应模型中的数据更改。这在某种程度上也违反了 MVC 模式。
另一个示例,请参阅 UIViewController。它一定是一个控制器,但它与视图的联系如此紧密,以至于问题仍然存在。视图和控制器之间的分离并不像 MVC 所希望的那样明确。
总而言之,我想说遵循模式(只要它们符合您的需求)以及使用给定框架遵循它的方式是一个好习惯。但在某些情况下,如果你明确说明,创建一些捷径并打破规则可能会很有趣。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)