私は自治体向けの学校関連のアプリを実装しています。私はクラスを持っており、次の式を使ってグレードを数えたい:grade = acedemicYear - commencingYear + 1
。DDDでシングルトンを使用するにはどうすればよいですか?
あなたは、この2つの方法をモデル化することができます。
- commencingYearとacademicYearの両方が、年式やacedemicYear年度は、シングルトンのいくつかの種類、commencingYearはAcademicYearの種類を持っているので、
AcademicYear.getInstance() - this.commencingYear + 1
- 別の解決策である必要があり今年私に今年のカレンダークラスがあるので、
Calendar.getAcademicYear() - this.commencingYear + 1
まだ私はこれらの権利を感じていません。モデルに年を挿入するのか、それともモデルの中に入れるのかは分かりません。学年を手動で多かれ少なかれ変更しなければならないという別の問題は、少なくとも毎年違う日に始まります。学年度を上げることにより、≧8はクラスが終了したことを意味するので、そのクラスの子供は現在の学生リストに載らないようにしてください。あなたはどう思いますか、これをモデル化する最良の方法は何ですか?
ありがとうございます!ですから、私がうまく理解すれば、ドメインサービス 'currentAcademicYear = CalendarService.getAcademicYear()'を作成し、 'CalendarService.finish(currentAcademicYear)'で年を終えることができます。または、私は 'currentAcademicYear = AcademicYearRepo.getCurrentAcademicYear()'と 'currentAcademicYear.finish()'からエンティティを作成することができます。あるいは、私は、学年が9月初めのどこかで始まるが、毎年違う日に始まるので、複雑であると思うサービスでDate型を使うことができます。自分のモデルにAcademicYearエンティティを持つことが最善の策だと思います。 – inf3rno
私はあなたのモデルやルールを理解していないので、本当に言うことは難しいです。私が言うことができるのは、何らかの形でビジネスルールを保護すべきだということだけです。したがって、将来変更される場合は、修正する場所は1つだけです。 – jgauffin
私は知っていますが、私はあまり話したくありません。私はエンティティが、このモデルではドメインサービスや日付型を使用するよりはるかに優れていると思います。あなたは多くの助けをしました、ありがとう! – inf3rno