フィーチャー指向は,フィーチャー(≒機能)に対応して可変性を記述する流儀です.もうみなさんだいたい想像がつくと思いますが,次のようなコードを書きます.
#ifdef FEATURE_X
/* フィーチャー X 向けのプログラムコード */
#endif
このような書き方の場合,プログラムコードの変更は製品指向と比べて少なくてすみます.もちろん新たなフィーチャーを追加したときには変更が必要ですが,単にフィーチャーの組み合わせを変えただけの新製品を作成するときには.プログラムコードを変更しなくてもできます.
逆に欠点としては,ビルドするときにフィーチャーを細かく指定する必要があります.製品指向だと製品 A のビルドをするときにマクロ PRODUCT_A を定義してビルドすれば良かったのに対し,フィーチャー指向では製品 A が採用する全ての可変フィーチャーを指定する必要があります.これは可変フィーチャーの数が多いと,面倒ですし,間違いの元です.
しかしこの欠点は,少し改良すると解消することができます.次回はその話をしましょう.
つづく