知識レベル-操作レベルを使うとき(1)
アナリシスパターンの知識レベル-操作レベルを使うときとして、
- プログラムの再コンパイルなしで、
- なにかの種類を増減したい。
場合がある。
たとえば、測定の種類として身長や体重などがあるとする。これらがプログラムのコンパイル時点で決定できるならば、以下のように enum で表現できる。
namespace KnowledgeOperation1 { public enum MeasurementTypeEnum { Height, Weight, // . . . . . } public class WrittenInSourceCode { MeasurementTypeEnum _measType; } }
測定の種類が増減し、プログラムを再コンパイルせずに対応するには、
- 測定の種類をクラスにして、
- そのインスタンスを生成・破棄する
ようにしておけばよい。
namespace KnowledgeOperation1 { // new MeasurementTypeClass("Height"); // new MeasurementTypeClass("Weight"); // . . . . . public class MeasurementTypeClass { public MeasurementTypeClass(string name) { // } } public class UsingReference { MeasurementTypeClass _measType; } }
参考: アナリシスパターンを読もう