###質問
以下のようなインターフェースの使い方がおかしくないかを教えてください。
いろんなクラスをnewするときに各クラスのコンストラクタに設定値を渡しているコードです。
###該当のソースコード
C#
1class A 2{ 3 IAInitializer a; 4 5 public A(IAInitializer a) 6 { 7 this.a = a; 8 } 9} 10 11interface IAInitializer 12{ 13 public int ConfigurationValue1{get;} 14} 15 16 17 18// 同じようなB,Cクラスと初期設定値クラス 19//class B... 20//class C... 21 22class ABCUser 23{ 24 public ABCUser(AppWholeConfig cof) 25 { 26 var a = new A(cof); 27 var b = new B(cof); 28 var c = new C(cof); 29 } 30} 31 32// appconf,DBの設定テーブル内のデータ等アプリで使う全ての設定値 33class AppWholeConfig : IAInitializer,IBInitializer,ICInitializer 34{ 35 public int ConfigurationValue1{get;} 36 37 // IB,ICInitializerの実装 38 // public string .... 39} 40 41 42
いままではA,B,CクラスそれぞれのためにAInitialize,BInitialize,CInitializeクラスを定義し、それとは別にAppWholeConfigクラスを作って各クラスをnewするときに必要な設定値クラスのインスタンスをつくっていたのですが、上記のようにひとつのクラスにインターフェースをたくさん実装してさまざまな設定値として使う方法を思いつきました。
このやり方がバッドプラクティスでないなら、楽なのでこのやり方を活用していきたいです。不安に思ったのはなんとなくA.aの参照インスタンスの実際の型はAppWholeConfigで、そこにはBクラスやCクラスの設定値も含まれているということです。なんとなく慣れないため、是非がわかりません。
回答3件
あなたの回答
tips
プレビュー