Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

構造に関するパターン(Structural Patterns)

クラスやオブジェクトを組み合わせて、より大きな構造を作るパターン群。多くは既存コードを変更せずに新しい振る舞いを 追加するために使われ、OCP の実現手段になる。

Adapter

インターフェースに互換性のないクラス同士を仲介し、既存コードを変更せずに接続するパターン。
外部ライブラリやレガシーAPIを自分のコードの期待するインターフェースに合わせたいときによく使う。

[legacy] hello

Decorator

既存のオブジェクトを別のオブジェクトでラップし、動的に振る舞いを追加するパターン。継承によるサブクラスの組み合わせ爆発を避けられる。
Pythonの @decorator 構文は関数版のこのパターン。

350

Facade

複雑なサブシステム群に対して、単純化された統一インターフェースを提供するパターン。利用者はサブシステムの内部構造を 意識せずに済むようになる。

CPU start
Memory load
Disk read

Composite

個々のオブジェクトとその集合を同じインターフェースで扱えるようにし、木構造(部分-全体階層)を統一的に扱うパターン。 ファイルシステムのファイル/ディレクトリ、UIコンポーネントツリーなどが典型例。

150

参考