BETA

ドメイン駆動設計にチャレンジ(ファクトリ)

投稿日:2019-08-23
最終更新:2019-08-25

情報処理技術者試験(DB)の2019年4月の問1をお題としたドメイン駆動設計チャレンジです。

前回の続きからです。前回は、ドメインサービスとして、エントリ枠の知識にかかわるところなのですけれども、直接的ではない・・・うーん、いい表現が浮かびません・・・ところを見てみました。

今回も、エントリ枠の知識ではない、だけれども、コンピュータシステムでエントリ枠の知識を扱うために必要なものを取り上げます。

そもそもエントリ枠を作らなければ・・・

専門家:ところで、このエントリ枠なのですが、エントリ枠をとってくる、というお話だったのですが、そもそもエントリ枠を大会の種目に追加しておかないことには、とってくるってできないのでは???

開発者:ええ、今回は、エントリ枠を作るということをします。

専門家:エントリ枠を新しく作るというのは、業務ルール、えーと、ドメインの知識、でしたか、そこにもありますし、エントリ枠というもの自体に持たせるのもありかなーと思います。

開発者:はい、あり、ですよー

専門家:ただ、作るとなると、抽選年月日が募集終了年月日より後の日付というルールがありまして、これは単純だとは思うのですが・・・

開発者:エントリ枠を作る側にそのルールを持たせるのかというお話ですと、それを許してしまうと、今後あちこちで業務ルールを書くことになっていって機能追加やメンテナンスが大変になってしまいますね。

専門家:ですよねー、それに、エントリ枠自身に必要な値も多くて、コンストラクタで作るのが一苦労しそうです。

開発者:そうですね、単純なものであればコンストラクタもありですけど。今回はエントリ枠を作る専用のものを用意しましょう。

専門家:ドメインサービスとはまた違うものですか?

開発者:はい、ドメインサービスを使ってもいいと思いますが、今回はファクトリを作りましょう!

専門家:エントリ枠を作る工場、ですね!

開発者:はい、単純ですけど、こんな感じで・・・

専門家:エントリ枠新規作成のところで、入力された値が業務ルールに適しているかチェックしてから、エントリ枠を新しく作るのですね!・・・あれ、エントリ枠を作る工場なのですが、、、復元って何ですか?

開発者:えと、新しく作る場合は、まだ参加者がいないですけど、データベースから格納したものを取り出したときは、参加者がいたり、場合によっては参加者が確定していたりしますよね。

専門家:ああ、そうですね!データベースから取り出したときは、データベースの値からオブジェクトを復元しないとですね!

・・・うーん、なかなか進みが遅いというか、あんまりきちんとまとまってないなー。次はリポジトリ、かな?

続きます・・・

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

yodai_u_uの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!