如果我将扩展和私有类型限制在单个Swift文件中,因为我只需要在一个文件中,它会改善编译时间和/或性能吗?或者Swift编译器是如此智能并且根本不重要?
实施例: 一个iOS Xcode项目,包含超过600个Swift文件(中等规模的项目)和现有的网络类:
NetworkController.swift
class NetworkController {
let queue = OperationQueue()
func add(_ op: Operation) {
queue.addOperation(op)
}
}
现在我需要添加一个只执行遗留操作的新类。这意味着iOS应用程序中的所有其他组件永远不会需要它。
LegacyController.swift(所有内容都放在同一个文件中)
internal final class LegacyController {
let network = NetworkController()
func start() {
network.requestSomeLegacyStuff {
print("blub")
}
// do lots of other work here ...
}
}
extension NetworkController {
fileprivate func requestSomeLegacyStuff(success: () -> Void) {
let operation = RequestLegacyDataOperation()
add(operation)
}
}
fileprivate final class RequestLegacyDataOperation: Operation {
// do lots of work here ...
}
VERSUS 将它们放入自己的文件中以获得更好的可见性和分离,但是需要更改为internal
范围,这根本不需要。
LegacyController.swift
internal final class LegacyController {
let network = NetworkController()
func start() {
network.requestSomeLegacyStuff {
print("blub")
}
// do lots of other work here ...
}
}
NetworkController + LegacyStuff.swift
extension NetworkController {
internal func requestSomeLegacyStuff(success: () -> Void) {
let operation = RequestLegacyDataOperation()
add(operation)
}
}
RequestLegacyDataOperation.swift
internal final class RequestLegacyDataOperation: Operation {
// do lots of work here ...
}