見出し画像

はじめての設計をやり抜くための本【設計編】第4章内部設計の手法③ビジネスロジックプログラム設計

ビジネスロジックは、ユースケース記述やビジネスルールに書かれた業務に関するシステムの処理である。業務に関する処理という意味でドメインロジックとも呼ぶ。
ビジネスロジックのプログラミング方法にはいくつかのパターンがある。
[ビジネスロジックのパターン]
・TransactionScriptパターン
・DomainModelパターン

■TransactionScriptパターン
TransactionScriptではビジネスロジックをサービスクラスのメソッドにする。
・Serviceクラスとは何らかの適当な業務単位に作成されるクラスである。
例:注文関連のビジネスロジックを提供するOrderServiceとなる(ユースケケース単位で作成しても良い)
Serviceクラスはビジネスロジックのメソッドを複数持つ。
例:OrderServiceクラスにはorderやlistOrderやcancelOrderなどのメソッドがある。
[TransactionScriptの特徴]
・ドメインの特徴がエンティティとTransactionScriptに分散される。オブジェクト指向ではデータと処理を1つのクラスで管理してカプセル化するが、
しかし、TransactionScriptでは、カプセル化のメリットである仕様変更に対する強さを失い、カプセル化を行わないため簡単に設計することができる。
・ビジネスロジックをメソッドにして集めているだけ。
・POJO(Plain Old Java Object)
→普通のオブジェクト。特別なインターフェイスやスーパークラスを実装する必要はない。

DomainModelパターン
DomainModelではビジネスロジックをエンティティに持たせる。エンティティはカプセル化とポリモーフィズムを実現できる。エンティティにシステムの重要な情報が集中するのでシステムの変更要件がエンティティに局所化される。その反面、エンティティが複雑になってしまう可能性がある。
適宜、Strategyパターンなどを使ってビジネスロジックを別のクラスに切り出す。トランザクション管理はエンティティに付与するかFacadeクラスを用意する。

第4章内部設計の手法③ビジネスロジックプログラム設計を終了します。
次回は④データベースプログラム設計について記載します。


この記事が気に入ったらサポートをしてみませんか?