C/C++ ドメイン・モデリング・クラス図での抽象の汎化

クラス図における抽象の汎化は、親と子の間にマッピングが存在する 依存関係です。

抽象の汎化は、クラス間の汎化または継承関係に非常に似ています。 抽象の汎化を使用して、親クラスは子クラスに対して、 インターフェースを作成するための特定の機能を継承するよう命じます。

注: C/C++ では、抽象の汎化は純粋な仮想操作を通じて達成されます。 純粋な仮想操作が含まれる親クラスは、抽象基底クラスと呼ばれます。 抽象基底クラスをインスタンス化することはできません。 子クラスは、その宣言内で純粋な仮想操作をオーバーライドする必要があります。 これを行わないと、インスタンス化することができません。 抽象基底クラスは、子クラス上に設計インターフェースを強制します。

例えば、C/C++ クラスおよび抽象の汎化を視覚化する場合、 親クラスをインターフェースまたは設計テンプレートとすることができます。 Vehicle クラスは、抽象の汎化を使用する親クラスです。 Vehicle クラスは、 特定の操作を使用するように強制することによって、 すべての子に対する設計テンプレートまたはインターフェースになります。 子クラスである Boat は、Vehicle クラスからいくつかの操作を継承します。 Boat クラスは、これらの操作を使用しないと実装することができません。 このように、Vehicle クラスは、 すべての子の設計インターフェースとして機能します。

ドメイン・モデリング・クラス図における抽象の汎化は、クラスの タイトルを他のクラスと区別することによって示されます。抽象の汎化を使用する親クラスは、 イタリック文字で書かれたクラス・タイトルを持ちます。 その子によって継承されたすべての操作 (純粋な仮想操作) も、 イタリックで表示されます。

通常の汎化関係と抽象の汎化関係の相違を、以下の図で説明します。

C/C++ の通常の汎化 C/C++ の抽象の汎化
C/C++ の通常の汎化が表示されます。 C/C++ の抽象の汎化が表示されます。


フィードバック