クリーンなアーキテクチャ。パートIII-設計原則

このシリーズは、ロバート・マーチン(ボブおじさん)の2018年の本CleanArchitectureの無料で非常に短い再話です。 前の部分はここにあります





設計原則

SOLIDの原則は、関数とデータをクラスに組み合わせる方法と、これらのクラスを相互接続する方法を示しています。つまり、これらの原則は中間レベルにあります。ただし、これらはコンポーネントレベル(高レベルのアーキテクチャ)にも適用されます。





SOLIDの原則は、1980年代後半に始まり、2000年代初頭に安定しました。





SRP:単一責任の原則

歴史的に、この原則は次のように定式化されてきました。モジュールには、変更する理由が1つだけあるはずです。





ただし、ボブおじさんは、別のより正確な定式化を提案しています。モジュールは、たった1人のアクターを担当する必要があります





モジュールは、関連する関数とデータ構造のセットです。





原則の違反の例:クラスEmployee



の三つの方法でcalculatePay()



reportHours()



save()



これらの3つの方法はすべて、さまざまなアクターに適用されます。calculatePay()



-これは経理ですreportHours()



-これは人事部門ですsave()



-これはデータベース管理者です アクターの1人がメソッドに変更を加えるように要求した場合、これは他のメソッドのロジックを壊す可能性があります。また、異なるアクターからの変更をマージすることも困難になります。





– . , .





OCP: /

, .





: .





.





: -. - . OCP , , , . , , , . , .. .





, , .





OCP , .





LSP:

: S T, T S - .





, , .





LSP: /.





LSP: , REST- . . , , .





ISP:

, .





, , .





, . ISP , , , . , , . .





DIP:

, .





Java , .





, , , java.lang.String



. . , , . .





. , , .





.





, ? :









  • , (XML, )









将来的には、DIPの原則を他の原則よりも頻繁に参照するようになります。これは、有能なアーキテクチャを構築するための最も重要なルールである依存性ルールを規定しているためです。





つづく...








All Articles