2021年2月5日アーキテクチャあらためてインターフェースについて勉強していく中で、新しい気づきがあったので整理してみました。目次インターフェースとはパブリックインターフェースプライベートインターフェースアプリケーションを設計する際はドメインオブジェクトにこだわりすぎずないドメインオブジェクトとはドメインオブジェクトはアプリケーション設計において中心となるモノではないアプリケーションを設計する際はメッセージに目を向けるインターフェースとはインターフェースといっても様々な概念がありますが、ここではクラス内にあるインターフェースを指します。要求されるメソッドを実装するクラスは、何であれインターフェースのように振る舞うことができます。パブリックインターフェースクラスはメソッドを実装し、いくつかは外部から使われることが意図されており、その外部公開されたメソッドがクラスのパブリックインターフェースを構成しています。外部から公開されたメソッドによって構成されるのが、クラスのパブリックインターフェースです。外部から実行されることが想定され、変更可能性が低く、依存しても基本的に安全であるという特徴があります。プライベートインターフェースクラス内の公開されたメソッド以外はすべて、プライベートインターフェースに含まれます。実装の詳細に関わり、変更可能性が高く、依存するのは危険であるという特徴があります。他のクラスのプライベートメソッドに依存する際は、本質的に不安定な何かに依存していることを理解し、関係のないところにも影響を受けるリスクを十分に考慮する必要があります。アプリケーションを設計する際はドメインオブジェクトにこだわりすぎずないドメインオブジェクトとはここでは、アプリケーションにおいてデータと振る舞いの両方を兼ね備えたものをドメインオブジェクトと呼びます。ドメインオブジェクトはデータベースに表されることが多く、目に見える現実世界を表し明確です。ホールスタッフ」、「メニュー」など、パッと必要そうなクラス・ドメインオブジェクトが思い浮かびます。実際、これらのドメインオブジェクトを軸にアプリケーションを設計していくことが多かったです。ドメインオブジェクトはアプリケーション設計において中心となるモノではないしかし、アプリケーション設計においてドメインオブジェクトにこだわりすぎることは罠となりえます。ドメインオブジェクトを中心に考えてしまうと、無理な振る舞いをさせてしまうことにつながるからです。本来はドメインオブジェクトを軸に設計するのではなく、メッセージに目を向け、その結果としてオブジェクトに気づきます。アプリケーションを設計する際はメッセージに目を向けるアプリケーションの設計を考える際は、オブジェクト間で交わされるメッセージに目を向けることが大切でだと学びました。このメッセージが、ドメインオブジェクト同様に必要で見えにくい他のオブジェクトを見つけるための手掛かりになります。オブジェクトとメッセージの両方の見当をつけ、相互理解を深めるにはシーケンス図がとても効果的な手法になります。Cacooブログシーケンス図とは「プログラムの処理の流れや概要」を設計する際に使われます。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。