我有一个我希望可重用的类(对于任何需要它的开发人员用户,或在我的项目之外)。这个类返回一个
Struct
,我们称之为structA
,类是classA
。
第一个想法是将
structA
放入此类的同一个file中,因此当Struct
是公共的时,任何获得该类文件的用户都可以读取该类返回的Struct
。
到目前为止,它看起来合理(或不合理)。
但是,如果我当前项目中的其他类也需要将此
Struct
用于其他目的,会发生什么情况? (副本)
然后为了使代码可重用,我需要将此结构放在其他地方。我所说的可重用是指没有依赖关系——获取类文件就是这样。
如果它在
classA
之外,那么classA
将变得不可重用并且具有依赖性。
如果它在内部
classA
,那么使用它的其他类也是依赖的(不能在外部重用)
剩下的唯一解决方案是创建其他像这样具有不同名称的结构(听起来很糟糕)。
您会将这个
Struct
放在 Xcode 项目中的什么位置?
将您的结构放在单独的文件和文档中,为您想要重用的每个类(它依赖于该结构)。所以基本上你的结构也可以重用。
重用类的过程变得有点困难 - 你还必须包含它的依赖项。但这只是生活的事实,基本上所有软件都具有依赖性。为了更容易添加一些代码依赖管理,例如 Cocoapods、Carthage 或 Swift Package Manager 已经被发明。您可以为每个库指定它所依赖的内容 - 因此
ClassA
取决于 StructA
。在您想要使用 ClassA
的项目中,您仅指定该依赖项,包管理器会将其所有依赖项(及其依赖项等)一起安装。
您可以创建一个单独的库或框架,其中包含所有可重用的类和结构。
每当您想使用类
classA
或结构 structA
时,您只需将该库导入到相应的文件中即可。
不建议重复代码。