使用Swift重构/组合多个几乎相同的类的推荐方法?

使用Swift重构/组合多个几乎相同的类的推荐方法?,swift,swiftui,Swift,Swiftui,在Swift中,我如何将以下内容合并到一个类中 class第一类:可编码的、可观察的对象{ @已发布变量int:int @已发布变量bool:bool @已发布的var firstObject:FirstType //加上初始化和自定义解码/编码功能 } 类第二类:可编码的、可观察的对象{ @已发布变量int:int @已发布变量bool:bool @已发布的var secondObject:SecondType //加上初始化和自定义解码/编码功能 } 第三类:可编码、可观察对象{ @已发布变

在Swift中,我如何将以下内容合并到一个类中

class第一类:可编码的、可观察的对象{
@已发布变量int:int
@已发布变量bool:bool
@已发布的var firstObject:FirstType
//加上初始化和自定义解码/编码功能
}
类第二类:可编码的、可观察的对象{
@已发布变量int:int
@已发布变量bool:bool
@已发布的var secondObject:SecondType
//加上初始化和自定义解码/编码功能
}
第三类:可编码、可观察对象{
@已发布变量int:int
@已发布变量bool:bool
@已发布变量thirdObject:ThirdType
//加上初始化和自定义解码/编码功能
}
(第一种类型、第二种类型和第三种类型也是符合可编码和可观察对象的类模型)
为了得到这样的结果:

class公共类:可编码、可观察对象{
@已发布变量int:int
@已发布变量bool:bool
@已发布的变量对象:CommonType//可接受FirstType、SecondType或ThirdType
//加上初始化和自定义解码/编码功能
}
我该怎么做呢?还有没有更好的方法仍然按照我的意愿运作


我基本上是想实现两件事:1-避免重复代码(在我的现实生活场景中,除了int和bool之外,还有很多共同的变量),2-希望通过最大限度地减少对单独视图的需要,使下游代码更直观。

其他代码不清楚,但如果这样的话,我会使用泛型,比如

class CommonClass<T>: Codable, ObservableObject {
//class CommonClass<T: CommonType>: Codable, ObservableObject { // << as variant
  @Published var int: Int
  @Published var bool: Bool
  @Published var object: T

// plus inits and custom decoding/encoding stuff

}
class公共类:可编码、可观察对象{

//类CommonClass:Codable,ObservableObject{//也可以通过协议+扩展来实现,但我认为通用方法可能是这种情况下的最佳解决方案,代码重复/样板最少。