对模型使用 inner 类 in swift 是个好习惯吗?
It is a good practice to use inner classes in swift for models?
我有多个项目使用我的 API 库。这个 API 为他的模型使用了一个通用的 class 名称,例如 "Document" 或 "Contract"。
我知道我可以使用前缀,但我问自己这样做内部 class 是不是更好:
//My main class
class MyApi {
func fetchDocuments(completion: ([Document]) -> Void){}
func fetchContracts(completion: ([Contract]) -> Void){}
}
//MyApi.Document.swift
extension MyApi {
class Document {
....
}
}
//MyApi.Contract.swift
extension MyApi {
class Contract {
....
}
}
//a cell config
func setup(document: MyApi.Document) {
}
似乎更清楚这个对象与这个 API 相关,并解决了与其他同名 class 的名称冲突。你认为这是一个好的解决方案吗?如果不是,选择哪个?
这是组织命名空间的好习惯,问题与以下问题相关:
Swift nested class properties
内部没有问题classes/structs这取决于你希望每个模块如何与另一个模块分开,另一个选项是有一个长命名约定
class ModuleA ... }
class ModuleA1 { ... }
class ModuleA2 { ... }
class ModuleB ... }
class ModuleB1 { ... }
class ModuleB2 { ... }
nested 的一个优点是你可以应用隐藏,只需更改根 class 的访问修饰符,而不是将它写在每个单独的 class
前面
我有多个项目使用我的 API 库。这个 API 为他的模型使用了一个通用的 class 名称,例如 "Document" 或 "Contract"。
我知道我可以使用前缀,但我问自己这样做内部 class 是不是更好:
//My main class
class MyApi {
func fetchDocuments(completion: ([Document]) -> Void){}
func fetchContracts(completion: ([Contract]) -> Void){}
}
//MyApi.Document.swift
extension MyApi {
class Document {
....
}
}
//MyApi.Contract.swift
extension MyApi {
class Contract {
....
}
}
//a cell config
func setup(document: MyApi.Document) {
}
似乎更清楚这个对象与这个 API 相关,并解决了与其他同名 class 的名称冲突。你认为这是一个好的解决方案吗?如果不是,选择哪个?
这是组织命名空间的好习惯,问题与以下问题相关: Swift nested class properties
内部没有问题classes/structs这取决于你希望每个模块如何与另一个模块分开,另一个选项是有一个长命名约定
class ModuleA ... }
class ModuleA1 { ... }
class ModuleA2 { ... }
class ModuleB ... }
class ModuleB1 { ... }
class ModuleB2 { ... }
nested 的一个优点是你可以应用隐藏,只需更改根 class 的访问修饰符,而不是将它写在每个单独的 class
前面