開放度が高すぎるプロパティ 例えば、何かをカウントする型があったとします。increment() メソッドでカウントアップして、count プロパティでその値を確認できるとします。 public struct Counter { public var count: Int = 0 // it's public!! mutating func increment() { count += 1 } } しかし、これでは、count の値を外部の者に変更されてしまう恐れがありますし、count プロパティ自体を private にすると、そもそも カウントした値を外から参照できなくなってしまいます。