对模型使用 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

前面