簡體   English   中英

確保無法通過其他實例訪問單例屬性

[英]Making sure singleton properties aren't accessible via other instance

我有一個單例課程:

final class NotificationSingleton : NSObject {
    static let sharedInstance = NotificationSingleton()
    var aProperty: String!
    var anotherProperty: Int!
}

我怎樣才能確保aPropertyanotherProperty只能通過訪問sharedInstance

您可以將初始化程序設為私有,因此無法創建其他實例

private override init() {}

一旦設置了sharedInstance就可以使用失敗的初始化程序來阻止創建其他NotificationSingleton實例。

我懷疑這種防御性編程實際上會使該類在將來被其他開發人員使用時變得敵對,難以測試,並且可能存在更清潔的解決方案,該解決方案不依賴單例作為全局變量,而是您可以使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM