単一の責任の原則は何ですか?
コンピューターのプログラミングと設計では、単一の責任原則は、プログラムのクラスは、より大きなアプリケーションで1つの関数のみを実行する必要があるという見解を支持する概念です。このアイデアは、クラス全体が単一の責任を実行することに焦点を合わせ、外部クラスにほとんど依存しないため、カプセル化など、オブジェクト指向プログラミングの理想の一部を部分的に促進します。同時に、単一のオブジェクトの関数はオブジェクトが処理しているというデータから切り離されているため、いくつかの中心データを維持するために組み合わせて構築する必要があるため、初期オブジェクト指向プログラミングの概念の一部とは多少反対です。単一の責任の原則は、責任主導型のデザインとして知られるデザインモデルのタイプの基礎です。
単一の責任の原則の例は、従来の電話ハンドセットの形をとることができます。いくつかのデザインの原則は、携帯電話を見るでしょうs電話回線からの入力とスピーカーからの出力の送信の両方を処理する単一のオブジェクト。単一のオブジェクトに単一の責任しか持たない単一の責任モデルの下で、携帯電話は、電話回線から入力のみを受信したり、イヤピースを介してデータを出力したりするなど、それぞれが単一の関数を実行したいくつかの個別のオブジェクトで構成されます。
単一の責任原則を使用することが可能になる利点の1つは、非常に高いレベルの抽象化とモジュール性です。ハンドセットの例では、電話回線からの入力または信号がユーザーに出力される方法のいずれかが、インターフェースのために同じ契約に付着する限り、隣接するクラスに影響を与えることなく変更できます。さらに、各クラスが完全にカプセル化されており、依存しているため、特定のコンポーネントの再利用可能性は非常に高くなる可能性がありますYリトル、たとえあったとしても、周囲のオブジェクトで、代わりにその1つの責任に焦点を当てています。
単一の責任の原則が作成する可能性のある複雑さは、すべてが同じデータで動作している大量のクラスとオブジェクトです。これは、大量のオーバーヘッドと複雑な設計プロセスを意味します。また、プログラムの一部が数千の小さなクラスファイルで構成される可能性があるため、大きなプログラムのデバッグを困難にすることもできます。
単一の責任の原則が責任主導型の設計を通じて適用される場合、データの操作に使用されるデータと設計目的で分離されます。これは、特定の自由、カプセル化、モジュール性につながりますが、データと一度にやり取りしようとする多くのクラスを促進するために使用する必要がある多くの中間パターンとデザインを生成することもできます。一方、オブジェクトのデータとそれを操作するために使用されるメソッドがすべてにバインドされている場合彼女は単一の多反応性オブジェクトで、システムスケール、変更、またはより複雑になるにつれて、コードを変更するのが難しくなる可能性があります。