このシリーズは、ロバート・マーチン(ボブおじさん)の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
. . , , . .
. , , .
.
, ? :
将来的には、DIPの原則を他の原則よりも頻繁に参照するようになります。これは、有能なアーキテクチャを構築するための最も重要なルールである依存性ルールを規定しているためです。
つづく...