我有多个使用API库的项目。这个API为他的模型使用了一个通用类名,如“文档”或“契约”。
我知道我可以使用前缀,但我问自己,做这样的内部类是不是更好:
//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相关,并解决与同名的其他类的名称冲突。你觉得这是个好办法吗?如果不是,哪种选择?
发布于 2019-05-20 13:26:08
这是一个很好的实践,可以将您的命名空间组织起来,并且这个问题与下面的一个相关:Swift nested class properties
发布于 2019-05-20 13:26:18
内部类/结构没有问题,这取决于您希望每个模块与另一个模块分离的方式,另一个选项是有一个长的命名约定。
class ModuleA ... }
class ModuleA1 { ... }
class ModuleA2 { ... }class ModuleB ... }
class ModuleB1 { ... }
class ModuleB2 { ... }嵌套的一个优点是,您可以通过使用root类更改访问修饰符来应用隐藏,而不是在每个单独的类前面编写它。
https://stackoverflow.com/questions/56221788
复制相似问题