ホームページ > ウェブフロントエンド > jsチュートリアル > Swift でシングルトンを定義するためのメソッド インスタンス

Swift でシングルトンを定義するためのメソッド インスタンス

php中世界最好的语言
リリース: 2018-04-11 14:09:45
オリジナル
1592 人が閲覧しました

今回は、Swiftでシングルトンを定義する方法と、Swiftでシングルトンを定義する際の注意事項を紹介します。実際のケースを見てみましょう。

シングルトンとは

シングルトンパターンは、デザインパターンの中で最も単純なものであり、パターンマスターでもそれをパターンとは呼ばず、実装技術と呼んでいます。デザインパターンはオブジェクト間の関係の抽象化に注意を払っているためです。 singleton サンプル パターンには、独自のオブジェクトが 1 つだけあります。

シングルトン パターンはモナド パターンとも呼ばれ、一般的に使用されるソフトウェア設計パターンです。 このパターンを適用する場合、シングルトン オブジェクトのクラスは、インスタンスが 1 つだけ存在することを保証する必要があります。

単一インスタンスの Singleton 設計パターンは、最も広く議論され使用されている設計パターンであり、面接で最も頻繁に質問される設計パターンでもあります。この設計パターンの主な目的は、システム全体で 1 つのクラスのインスタンスが 1 つだけ表示されるようにすることです。もちろん、これはソフトウェア、ファクトリー、メイン コントロール クラスなどのグローバル構成情報のように必要です。

Swiftでシングルトンを作成する方法

Swift でシングルトンを作成するには 2 つの方法があります

グローバル変数のやり方

let sharedNetworkManager = NetworkManager(baseURL: API.baseURL)
class NetworkManager {
 // MARK: - Properties
 let baseURL: URL
 // Initialization
 init(baseURL: URL) {
 self.baseURL = baseURL
 }
}
ログイン後にコピー

このグローバル変数を参照

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
 print(sharedNetworkManager)
 return true
}
ログイン後にコピー

に使用します 静的プロパティとプライベート化されたコンストラクターメソッドメソッド

class NetworkManager {
 // MARK: - Properties
 private static var sharedNetworkManager: NetworkManager = {
 let networkManager = NetworkManager(baseURL: API.baseURL)
 // Configuration
 // ...
 return networkManager
 }()
 // MARK: -
 let baseURL: URL
 // Initialization
 private init(baseURL: URL) {
 self.baseURL = baseURL
 }
 // MARK: - Accessors
 class func shared() -> NetworkManager {
 return sharedNetworkManager
 }
}
ログイン後にコピー

参照用にクラス メソッドを直接呼び出します

NetworkManager.shared()
ログイン後にコピー

この記事の事例を読んだ後はメソッドを習得したと思います。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

IView で on-change 属性を使用する方法

vue プロジェクトで Sass 構成を使用する方法

以上がSwift でシングルトンを定義するためのメソッド インスタンスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート