Interactive Software Engineering: Advanced development tools for enterprise applicationsISE TECHNOLOGY

AN INVITATION TO EIFFEL

7 総称

 抽象データ型の実装としてソフトウェア コンポーネント(クラス)を構築することは、堅固なアーキテクチャを持つシステムをもたらしますが、それ自体において、再利用性と信頼性を保証するのに十分ではありません。この二つの鍵となる技法は、総称(制約されない、または制約された)と継承の問題を扱います。最初に、制約されない形式を見てみましょう。

 クラスを総称的にさせることは、クラスに、任意の型を表す形式的総称パラメータを与えることです。EiffelBaseのカーネルとデータ構造のライブラリからの、次の例のようにです。

 これらのクラスは、データ構造 -- 配列、特定の表現に制約<commitment>を持たないリスト、リンク表現でのリスト -- を記述しており、特定の型のオブジェクトを含んでいます。形式的総称パラメータ G は、その型を表しています。

 これらのクラス群のそれぞれは、型のテンプレートを記述します。有用な型を直接導出するために、あなたは、実総称パラメータと呼ばれる G に対応する型を提供しなければなりません。これは、( INTEGER のような)基本拡張型または参照型のいずれであってもかまいません。いくつかの可能な、総称的な導出があります。

 最後の例が示すように、実総称パラメータは、それ自体、総称的に導出されてもかまいません。

 総称無しでは、現実的なオブジェクト指向言語において、静的型検査を獲得することは不可能であったでしょう。

 この機構の変種である 制約された 総称性は、クラスに対して、特有な要件を可能な実総称パラメータに置くことを可能にするでしょう。制約された総称は、継承に続く 後の節 で紹介しましょう。

前節 目次 次節

Frequently requested pages

Questions? Comments? Let us know!

URL for this page: http://www.eiffel.com/doc/manuals/language/intro/genericity.maker.html.
Copyright 1994-1998 Interactive Software Engineering Inc. All rights reserved.