Je suis la mise en œuvre d'une application liée à l'école pour le gouvernement local. J'ai des cours et je veux compter la note en utilisant la formule suivante: grade = acedemicYear - commencingYear + 1
.Comment devrais-je utiliser singleton dans DDD?
Vous pouvez modéliser ces 2 façons:
- à la fois commencingYear et academicYear ont un type de l'année et l'année acedemicYear est une sorte de singleton, si
AcademicYear.getInstance() - this.commencingYear + 1
- une autre solution que commencingYear a un type de AcademicYear, et j'ai une classe de calendrier, qui me donne l'année en cours, donc
Calendar.getAcademicYear() - this.commencingYear + 1
Encore je ne me sens pas ces droits. Je ne suis pas sûr si je devrais injecter l'année dans le modèle ou il devrait être dans le modèle. Un autre problème que l'année académique devrait être changé plus ou moins manuellement, au moins il commence chaque année à une date différente. En augmentant l'année scolaire, le niveau supérieur à 8 signifie que la classe est terminée, donc les enfants de cette classe ne devraient pas être sur la liste actuelle des élèves. Que pensez-vous, quelle est la meilleure façon de modéliser cela?
Merci! Donc, si je comprends bien, je pourrais créer un service de domaine 'currentAcademicYear = CalendarService.getAcademicYear()' et terminer l'année avec 'CalendarService.finish (currentAcademicYear)'. Ou je pourrais en créer une entité 'currentAcademicYear = AcademicYearRepo.getCurrentAcademicYear()' et 'currentAcademicYear.finish()'. Ou je pourrais utiliser le type Date avec le service, ce qui me semble compliqué, puisque l'année scolaire commence quelque part au début de septembre, mais dans une journée différente chaque année. Je pense qu'il est préférable d'avoir une entité AcademicYear dans mon modèle. – inf3rno
Je ne comprends pas votre modèle ou la règle, donc c'est vraiment difficile à dire. Tout ce que je peux dire, c'est que vous devriez protéger la règle commerciale d'une manière ou d'une autre. Donc, si cela change à l'avenir, il n'y a qu'un seul endroit à modifier. – jgauffin
Je sais, mais je ne veux pas trop en parler. Je pense qu'une entité est beaucoup mieux que d'utiliser un service de domaine ou juste un type de date dans ce modèle. Vous avez beaucoup aidé, merci! – inf3rno