構造に関する GoF パターン

関連項目

構造に関する GoF (Gang of Four) パターンは、クラスとオブジェクトを組み合わせることによってより大きな構造を形成するための方法を扱います。構造に関するクラスパターンは、継承を使用してインタフェースや実装を構成します。たとえば、複数の継承は、1 つのクラスに複数の親クラスが混在する可能性があることを意味します。複数の継承を使用すれば、別個に作成されたクラスライブラリを容易に組み合わせて使用することができます。

次の表で構造に関する GoF パターンについて説明します。

パターン名 対応する設計上の問題 ロール 説明
Adapter クラスのインタフェースを、クライアントが求めるインタフェースに変換します。Adapter を使用すると、インタフェースに互換性のないクラスを組み合わせて使用できます。 Target 特定の要求を取得するためにクライアントによって使用される一連の操作を定義します。
Client Target オブジェクトを操作します。
Adaptee 特定の要求に使用できる特定の適合を定義します。
Adapter 特定の Target 要求と特定の Adaptee 間の接合点を提供し、そこで実際に要求を処理します。
Bridge 特定の動作に固有の実装を変更できる抽象機構を提供します。 Abstraction RefinedAbstraction によって実装される抽象インタフェースを定義します。
RefinedAbstraction Abstraction インタフェースに宣言された操作を実装します。
Implementor ConcreteImplementor によって実装される抽象インタフェースを定義します。Abstraction は Implementor を使用します。
ConcreteImplementor Implementor インタフェースに宣言された操作を実装します。
Composite Composite を使用すると、ほかのオブジェクトを含むことができるオブジェクトを均一に操作できます。 Component コンポジションに属するためにすべてのオブジェクトが実装する必要がある基本的なインタフェースを定義します。
Leaf コンポジションに関連するオブジェクトが含まれていないオブジェクトです。
Composite Component インタフェースに準拠するほかのオブジェクトを含むオブジェクトです。
Client Component オブジェクトを操作します。
Decorator オブジェクトに責任を動的に追加します。Decorator はサブクラス化よりも柔軟な方法で機能を拡張します。 Component 動的に装飾するすべてのオブジェクトに実装する必要がある抽象インタフェースを定義します。
ConcreteComponent Component インタフェースに宣言された操作を実装します。
Decorator ConcreteDecorators によって実装される抽象インタフェースです。
ConcreteDecorator Decorator インタフェースに宣言された操作を実装します。
Facade 潜在的に複雑なサブシステムへの上位レベルの入場点を提供し、クライアントからのサブシステム管理を容易にします。 Facade 要求を委任するオブジェクトです。
Subsystem Facade オブジェクトによって委譲された特定の要求を実装します。
Flyweight 細分された多数のオブジェクトを効率的にサポートするために共有が使用されます。 Flyweight ConcreteFlyweight 間で共有できない状態を操作するためにクライアントが使用する抽象インタフェースを定義します。
ConcreteFlyweight Flyweight インタフェースを実装します。また、共有できる状態の格納場所を提供します。
UnsharedConcreteFlyweight Flyweight インタフェースを実装します。また、共有できない状態の格納場所を提供します。
FlyweightFactory ConcreteFlyweight オブジェクトを作成する操作を提供します。
Client Flyweight オブジェクトを操作します。
Proxy 別のオブジェクトの代理または代替文字を提供し、オブジェクトへのアクセスを管理します。 Proxy Subject によって定義されるインタフェースを実装し、次にそのインタフェースを通じて RealSubject にすべての要求を渡します。
Subject RealSubject および Proxy に実装する必要がある一連の操作を定義します。
関連項目
GoF デザインパターン
動作に関する GoF パターン
作成に関する GoF パターン

著作権と商標について