2010年2月18日木曜日

製品指向とフィーチャー指向の可変性実現(2)

前回は製品指向について説明しました.今回はフィーチャー指向について説明します.

フィーチャー指向は,フィーチャー(≒機能)に対応して可変性を記述する流儀です.もうみなさんだいたい想像がつくと思いますが,次のようなコードを書きます.


#ifdef FEATURE_X 
/* フィーチャー X 向けのプログラムコード */
#endif 

 このような書き方の場合,プログラムコードの変更は製品指向と比べて少なくてすみます.もちろん新たなフィーチャーを追加したときには変更が必要ですが,単にフィーチャーの組み合わせを変えただけの新製品を作成するときには.プログラムコードを変更しなくてもできます.

逆に欠点としては,ビルドするときにフィーチャーを細かく指定する必要があります.製品指向だと製品 A のビルドをするときにマクロ PRODUCT_A を定義してビルドすれば良かったのに対し,フィーチャー指向では製品 A が採用する全ての可変フィーチャーを指定する必要があります.これは可変フィーチャーの数が多いと,面倒ですし,間違いの元です.

しかしこの欠点は,少し改良すると解消することができます.次回はその話をしましょう.

つづく