知識レベルのオブジェクトの汎化

知識レベルのオブジェクトの汎化

  • 知識レベルのオブジェクトにスーパータイプとサブタイプを認めることで、更に柔軟性を持ったモデルとする

オブジェクトの汎化とは

  • 操作レベルのオブジェクトに、複数の知識レベルを対応づける。
  • 所謂、スーパータイプ関係とサブタイプ関係を、知識レベルのモデルに持たせる。

  • 例えば、知識レベルとして、「料理人」と「ラーメン屋の店主」を考える。
  • この2つのオブジェクトは、スーパータイプとサブタイプである。
  • ラーメン屋の店主は、料理人でもある。料理人に紐づく知識レベルのルールは、ラーメン屋の店主にも当てはまる。
  • そこで、知識レベルのモデルでは、料理人をスーパータイプとして定義し、ラーメン屋の店主を、料理人のサブタイプとする。
  • このパターンの適用により、操作レベルのオブジェクトへの対応がより柔軟になる。

パターンを適用するための制限

  • 「知識レベル」のパターンが導入されている必要がある。

アナリシスパターン本では

  • 知識レベルのオブジェクトの汎化は、アナリシスパターン本で「パーティ型の汎化」として説明されている。
  • パーティ型とは、アナリシスパターン本で取り上げている例の、知識レベルのオブジェクトのこと。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax