ショートカット
ファシリテーター × あり方
コーディングの向こう側
Hello, ANOTHER world!
オブジェクト指向のはなし
プログラミングのはなし
C言語実力診断クイズ
eSkillBooks
プログラミングのはなし

利用形態を意識したデザイン

関数は、使い易くなければなりません。使い易いプロトタイプを作るにはどうすれば良いでしょうか?

多くの関数には、利用形態の典型的なパターンがあります。たとえば小文字を大文字にする ToUpper という関数を作るとしましょう。おそらくこの関数の典型的な利用パターンは以下のようなものです。

SAMPLE
CODE
void ToUpperString( char *pcLower )
{
    ASSERT( pcLower != 0 );

    for ( char *pc = pcLower; *pc != '\0'; pc++ ) {
        *pc = ToUpper( *pc );
    }
}

そこで、 ToUpper のプロトタイプは次のように決まります。

char ToUpper( char ch );

このように、関数の典型的な利用形態を想定することが大事です。利用形態を意識せずに

void ToUpper( char *pch );

とか

void ToUpper( char chLower, char *pchUpper );

などとすると、とたんに使いにくい関数になってしまいます。

もちろん C++ でクラスをデザインする場合は、そのインスタンスを生成してから破棄するまでの典型的な利用形態を想定し、各メンバ関数のプロトタイプを決定するようにします。

典型的な利用形態を想定したら、逆に、想定された形態で利用されるように配慮することも大事です。そこで、関数(やクラス)を利用する際に目につきやすい場所(例えばヘッダファイル)に典型的なサンプルコードをコメントとして書いておくようにすると良いでしょう。そうすれば利用者はサンプルコードを自分のソースコードにコピー&ペーストして使うようになり、予想外の使われ方を避けることができます。

(「プログラミングのはなし」は1998年1月から1999年1月にかけて作成されたコンテンツです。)