面向对象编程:封装、继承与类层次结构设计
1. 构建不可变类
在面向对象编程中,可变性是一个重要的概念。当我们暴露可变属性时,会创建出能生成可变实例的类。然而,在某些情况下,可变对象可能会引发问题,比如在处理并发代码时,一个状态不可变的对象能解决许多并发问题并避免潜在的错误。
以创建一个不可变的三维向量类为例,下面是 ImmutableVector3D 类的代码:
public class ImmutableVector3D {
public let x: Float
public let y: Float
public let z: Float
init(x: Float, y: Float, z: Float) {
self.x = x
self.y = y
self.z = z
}
public func sum(deltaX: Float, deltaY: Float, deltaZ: Float) -> ImmutableVector3D {
return ImmutableVector3D(x: x + deltaX, y: y + deltaY, z: z + deltaZ)
}
public func printValues() {
print("X: \(self.x), Y: \(self.y), Z: \(self.z))")
}
public class func equalElementsVec
超级会员免费看
订阅专栏 解锁全文
11万+

被折叠的 条评论
为什么被折叠?



