知識レベル-操作レベルを使うとき(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;
    }
}

参考: アナリシスパターンを読もう