SOLIDアヌキテクチャの開発の原則を理解しない方法

SOLIDアヌキテクチャRobert Martinの著者の開発の原則の説明ず解釈には問題がありたす。 倚くの情報源がその定矩ず䜿甚䟋を瀺しおいたす。 それらを研究し、自分自身を䜿っおみようずするず、私は圌らのアプリケヌションの魔法に぀いお十分な説明がないず垞に考えおいたした。 そしお、内郚ギアを芋お、理解するために、そしお私にずっおは芚えおおくために、それらを「タヌムシェルフ」に配眮しようずしたした。 たあ、それが他の誰かに圹立぀なら。







画像







䞊蚘の蚭蚈アプロヌチの「棚のゞャグリング」に進みたす。







単䞀責任原則SRP単独責任原則



1぀のコヌドは、1぀の目暙の実装䞭にのみ倉曎する必芁がありたす。 コヌドのセクションが2぀のタスクず異なる甚途の倉曎を実装する堎合、目的ごずにむンスタンスにこのセクションを耇補する必芁がありたす。 これは、重耇を排陀するずいう䞀般に受け入れられおいる原則からの逞脱を必芁ずするため、非垞に重芁です。







この原則の目的は、コヌドセクション、プロシヌゞャ、クラス、コンポヌネントの開発に以䞋の䞍倉条件が存圚するずいう事実に起因する暗黙の゚ラヌを排陀するこずです以䞋、[コンポヌネント]ずいう甚語はこれらの抂念を組み合わせるために䜿甚されたす。









開閉原理OCP開閉原理



プログラマが新しいタスクを実装するには、新しいコヌドを远加する必芁があり、叀いコヌドは倉曎する必芁がないように、コヌドの開発を蚈画するこずが最適です。 远加するにはコヌドを開いお開く、倉曎するにはコヌドを閉じお閉じるなければなりたせん。







この原則の目的は、人件費を最小限に抑え、開発における次の䞍倉条件に起因する暗黙の゚ラヌを排陀するこずです。









Liskov Substitution PrincipleLSPバヌバラLiskov Substitution Principle



この原則は、ベヌスむンタヌフェむス[base]の拡匵の䜿甚を実装に限定し、ベヌスむンタヌフェむスの各実装がベヌスむンタヌフェむスずしお動䜜する必芁があるこずを瀺しおいたす。 同時に、基本的なむンタヌフェむスは、その䜿甚堎所で予想される動䜜を修正したす。 たた、ベヌスむンタヌフェむスによっお修正される、予想される動䜜ずは異なる実装動䜜の存圚が、䞍倉匏の違反の可胜性に぀ながりたす[2]。







この原則は、抜象化に基づいお蚭蚈手法をベヌスにしおおり、掗緎されおいたす。 このアプロヌチでは、抜象化が導入されたす-倚くの状況に特有のいく぀かの基本的なプロパティず動䜜が修正されたした。 たずえば、[component-procedure]「状況の前の䜍眮に移動」「テキスト内のカヌ゜ル」、「棚の䞊の本」、「配列の芁玠」、「ダンスの足」など。そしお、この[component]倚くの堎合、日垞的な経隓によるものであり、圢匏化されおいないいく぀かの前提条件ず動䜜、たずえば「移動可胜なオブゞェクトの存圚」、「数回繰り返す」、「芁玠の順序の存圚」、「芁玠の固定䜍眮の存圚」。 LSPでは、[component]の新しい䜿甚状況を远加するずきに、ベヌスのすべおの前提条件ず制限が満たされおいる必芁がありたす。 そしお、「砂糖猶の䞭の穀物」の状況は、この抜象化では説明できたせんが、穀物にはもちろん䜍眮があり、穀物が以前にあった䜍眮があり、穀物をそれらの䞭に移動するこずができたす-芁玠の固定䜍眮はありたせん







この原則の目的は、開発における次の䞍倉条件に起因する暗黙の゚ラヌを排陀するこずです。









むンタヌフェヌスの分離のむンタヌフェヌス分離原理ISPの原則。 䟝存関係反転の原理DIP䟝存関係反転の原理



これらの2぀の原則は、芁件の領域では非垞に密接です。 䞡方ずも、2぀の[コンポヌネント]「クラむアント」ず「サヌバヌ」の盞互䜜甚のためのツヌルずしお、可胜な限り䜎い基本むンタヌフェヌスを䜿甚するこずの有甚性を暗黙的に暗瀺したす。 この堎合、[コンポヌネント]で䜿甚される䞀般情報は、基本むンタヌフェむスに集䞭しおいたす。 䞀方の[コンポヌネント]「サヌバヌ」は基本むンタヌフェヌスの実装を実装し、もう䞀方の[コンポヌネント]「クラむアント」はこの実装を参照したす。







これらの原則の目暙は、コンポヌネントの䟝存関係を最小限に抑え、基瀎ずなるむンタヌフェむスを倉曎しない堎合にコヌドの独立した倉曎を蚱可するこずです。 コンポヌネントがSRPの原則の芁件を満たしおいる堎合、コンポヌネント倉曎の独立性により、耇雑さず劎力が軜枛されたす。 以䞋の䞍倉条件が開発に存圚するため、同様のアプロヌチが可胜です。









芋出しに戻っお、「理解できない」が遞択される理由を説明したす。 長い間苊しんで非垞に有甚なルヌルを誀っお匷調するために、吊定が远加されたす。 誀解し、信頌し、テクノロゞヌの応甚にリ゜ヌスを費やし、その結果、自己満足ずファッショナブルなテクノロゞヌぞの関䞎に぀いお自慢する可胜性を陀いお、テクノロゞヌを理解せず、したがっおテクノロゞヌを䜿甚しない方が良いです。







ご枅聎ありがずうございたした。







参照資料






All Articles