ソフトウェアアーキテクチャ博物館 AtMuseum
解法パターン解説
インタフェースと実装の分離
| 説明 | 外部から利用される手続きと、内部の実装を分離することです。インターフェースを守っていれば、内部の実装は変更しても問題ありません。
インタフェースは、関数の場合は関数ヘッダで定義しています。 ファイルやコンポーネントでは、公開関数の集合体がインタフェースになります。 ポート付きの構造図を使うことで、ポートでインタフェース定義することができます。 |
|---|---|
| 例 | 良いコード関数の関数ヘッダに,引数と戻り値の記載があり,その通りに実装的できていること。 ファイル単位では,ヘッダファイルに だめなコード |
| ポイント | 設計スキル提供インタフェースを意識して設計実装すること大切です。 モジュールのインタフェースを定義して保全すること」
|
| 備考 | 単方向依存「上位が下位のサービスを利用する」という単方向依存にします。 上位が「指示」を出して、下位が「報告」するという「レベル化の設計」を行います。 上位が下位の情報を集めて、処理の流れを作ってはいけません。上位が「何でも屋」になってしまいます。 プラットフォーム化コンポーネント単位のインタフェース定義することでプラットフォーム化できます。 大規模な粒度で内部の関数呼び出し集合をAPIセットとして定義します。 AtScopeでコンポーネント間のインタフェースを列挙できます。 プロダクトライン開発複数機種一括開発での、変動点の設計実装もできます。 単方向依存を意識することで、置換可能になります。 機種ごとの違いを変動点として定義して、置換することでプロダクトライン開発ができます。 |