我正在清理我的代码,因为我的TableViewController
课程变得相当充实和漫长。为了清理代码,我想创建一些为TableViewController
提供方法的实用程序类。在我当前的实现中,这些方法/函数能够更改主TableViewController
中的变量。以下是我当前设置的一个示例:
class FooImplementation: NSObject {
var viewController: Foo
init(viewController: TableViewController) {
self.viewController = viewController
}
}
class FooUtility1: FooImplementation {
// Methods
}
class FooUtility2: FooImplementation {
// Methods
}
class Foo: TableViewController {
var fooUtility1: FooUtility1
var fooUtility2: FooUtility2
override viewDidLoad() {
fooUtlity1 = FooUtility1(self)
fooUtlity2 = FooUtility2(self)
}
// Use of the methods...
}
是否有更好/普遍定义的创建和使用这些类的方法?这些类可以合并为一个Utility
类,可以访问FooUtility1
和FooUtility2
提供的所有方法吗?
谢谢!
答案 0 :(得分:6)
我不认为添加实用程序类是一个好的设计模式,至少有以下原因:
当然我不知道你想从视图控制器移动到实用程序类的行为是什么 - 我的建议是使用以下一个或多个:
UIViewController
,用作最终视图控制器的超类第二个案例是我经常使用的案例,第三个案例是我应用于我的最新项目的案例,通过实施每个要显示的视图更好地分离关注点:
它使开发变得更复杂,但最后我有一个光视图控制器,以及一个负责显示数据,处理事件并将它们转发给视图控制器的视图。
请注意,这不是解决方案,只是一种可能的解决方案。有几个变量需要考虑,确保你想从视图控制器移动什么,我认为也是个人偏好。