INDEX / JOURNAL / LOG-018
VOL. 2026 · ENGINEERING
SERIES 3 / 4
LOG-018 · DI AND CONTAINERS

DI と DI コンテナは別物

PUBLISHED
2026 · 10 · 09
AUTHOR
MIGIWAYA
READ
約 7 分
TAGS
#flutter#dart

§ 01DI

lib/settings_store.dartDART
class SettingsStore {
SettingsStore(this._preferences);
 
final Preferences _preferences;
 
String? loadTheme() {
return _preferences.read('theme');
}
}

§ 02IOC

§ 03FORMS

形依存を渡す場所特徴
コンストラクタ生成時に必要なものが揃う
setter生成後に依存を設定する
注入用メソッド利用側が注入用 interface を実装する

§ 04DIRECTION

lib/checkout_service.dartDART
class CheckoutService {
CheckoutService() : _clock = services.get<Clock>();
 
final Clock _clock;
}
lib/checkout_service.dartDART
class CheckoutService {
CheckoutService(this._clock);
 
final Clock _clock;
}

§ 05ROOT

lib/main.dartDART
void main() {
final preferences = DevicePreferences();
final settings = SettingsStore(preferences);
final clock = SystemClock();
final checkout = CheckoutService(clock);
 
runApp(App(settings: settings, checkout: checkout));
}

§ 06FLUTTER

§ 07SUMMARY

脚注 · NOTES
  1. [1] ↩
  2. [2] ↩
  3. [3] ↩
  4. [4] ↩
同シリーズ · Riverpod と依存性注入
§ + RELATED すべて見る →
INQUIRY
CONTACT
LOCATION
STATUS
Active / Open
ESTABLISHED
2024 · 5 · 5
FORM