iOSアプリを開発している者です。アプリ全体で用いるような値やメソッドを1つの構造体にまとめようとしており、以下の2パターンの実装を考えたのですが、どちらを採用するか決めかねています。
- シングルトンを用いた実装
- staticな変数/メソッドを用いた実装
以下に具体的なコードを記載します。例として、アプリで用いる色をまとめるColor構造体を実装してみました。
- シングルトンを用いた実装
swift
1struct Color { 2 private init() {} 3 static let shared = Color() // シングルトン 4 5 // インスタンス変数 6 let gray: UIColor = UIColor(white: 0.5, alpha: 1.0) 7 8 // インスタンスメソッド 9 func someMethod() { 10 print("何かする") 11 } 12} 13 14// 利用時 15view.backgroundColor = Color.shared.gray 16Color.shared.someMethod()
- staticな変数/メソッドを用いた実装
swift
1struct Color { 2 private init() {} // (2017.10.31 追記: インスタンス化できないよう修正しました) 3 4 // クラス変数 5 static let gray: UIColor = UIColor(white: 0.5, alpha: 1.0) 6 7 // クラスメソッド 8 static func someMethod() { 9 print("何かする") 10 } 11} 12 13// 利用時 14view.backgroundColor = Color.gray 15Color.someMethod()
今回お聞きしたいのは色の管理方法ではなく、上記2つの実装方法の違いやメリット/デメリットについてです。コーディングスタイルや設計思想、実行時のメモリや速度など、様々な観点からの比較・アドバイスを頂けますと幸いです。たくさんのご意見をお待ちしております。
回答1件
あなたの回答
tips
プレビュー