【问题标题】:Should I implement functions inside the class to adapt MVC?我应该在类中实现函数以适应 MVC 吗?
【发布时间】:2016-04-23 13:09:50
【问题描述】:
我是设计模式的新手。我有一个名为CustomClass 的类,它是UILabel 的子类,我正在使用Swift,在应用程序中我将对此类的实例执行多项操作,例如旋转、调整大小等等。
现在的问题是,我可以在类或它们的父级ViewController 中实现这些函数,这是使应用程序适应 MVC 的正确方法吗?
【问题讨论】:
标签:
swift
oop
design-patterns
model-view-controller
【解决方案1】:
没有单一的“正确”方式。像往常一样,这取决于。
如果您的操作包含特定于 UI 的代码,特别是如果您想像 UILabel 一样重用您的 CustomClass,那么将操作放入 CustomClass 可能会更好。
一般来说,UI 细节最好在视图中而不是在控制器中。 Controller 以抽象的方式告诉 View 要做什么。视图可能会显示控制器将使用的方法rotate、resize 等。
在您的情况下,您正在开发一个 UI 组件,因此区别不是那么明确。控制器逻辑可能非常复杂,从小部件本身中提取它对于测试和重用很有用。您可以考虑使用Look 和Feel,而不是this article 中建议的View 和Controller。