实用程序类的正确实现[Swift]
我正在清理我的代码,因为我的实用程序类的正确实现[Swift],swift,xcode6,Swift,Xcode6,我正在清理我的代码,因为我的TableViewController类已经很满很长了。为了清理代码,我想创建一些实用程序类,为TableViewController提供方法。在我当前的实现中,这些方法/函数能够更改主TableViewController中的变量。以下是我当前设置的一个示例: class FooImplementation: NSObject { var viewController: Foo init(viewController: TableViewContr
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
类,该类可以访问foooutility1
和foooutility2
提供的所有方法吗
谢谢 > P>我不认为添加实用类是一个好的设计模式,至少有以下原因:
- 它们可以更改视图控制器的内部状态
- 如果成员属性本质上是私有的,则必须将其“升级”为内部属性或公共属性
- 创建视图控制器扩展
- 创建您自己的一组基本视图控制器,这些控制器继承自
,用作最终视图控制器的超类UIViewController
- 将一些逻辑移到外部类,但使用委托模式进行交互
- 视图控制器,负责管理(但不显示)视图,并处理从其视图接收的事件
- 数据源,负责提供要在视图中显示的数据,以及添加/删除/更新(如果需要)的方法
- (层次结构)视图,在其自己的xib文件中的单独类中实现
请注意,这不是解决方案,而是一个可能的解决方案。有几个变量需要考虑,以确定要从视图控制器中移动什么,我认为还有个人偏好。例如,实用程序类提供了一个方法列表,可以帮助创建和设置单元格中的文本。另一个实现了视图控制器的数据检索,并相应地更新了表视图等。根据上面的评论,您对这些有什么具体的建议?感谢againcells:我通常将数据传递到单元格并让它呈现-我在CellForRowatineXpath中这样做。这使得单元可重用数据检索:我从不在视图控制器中实现这一点,相反,我有几个
UserManager
,PostManager
,等等。负责检索数据-分离关注点是关键