Търся някои насоки за това кога човек трябва изрично да моделира роля в модела на домейна.
Ще обясня настоящата си позиция с помощта на пример тук.
Да кажем, че изграждаме система за здравеопазване и изискванията на бизнеса гласят
„Че само лекари с над 3 години опит и определена квалификация могат да извършват операции“
В този случай е очевидно, че действието по извършване на операция може да бъде извършено само от лице, което играе ролята на лекар и лекарят трябва да отговаря на определени предпоставки, за да извърши действието
docter.performSurgery()
Така че по принцип всички лекари не са еднакви
Този метод вероятно ще провери дали предварителните условия са изпълнени
Така че в горните случаи ще моделирам изрично ролята.
Сега нека разгледаме алтернативния сценарий.
Само администратор може да одобри превод на средства
В горния случай не намирам необходимост да моделирам тази роля в домейна, тъй като няма правила, които да разграничават един администратор от друг в моя домейн.
Всяко лице/потребител с разрешение на администратор може да извърши това действие, предпочитам да проектирам това в моята инфраструктура за сигурност и да гарантирам, че
approveTransfer()
методът, извикан на приложния слой, се извиква само ако влезлият в момента потребител има разрешението ADMIN.
Така че "моделът на домейн", под който имам предвид класове като класа на акаунта, не познава това правило, това е кодирано в приложния слой или чрез AOP, или вероятно чрез класа AccountService или други подобни.
Какво казват мъдреците за това? :)
doctor.scheduleSurgery(date)
? От вашата публикация и функция performSurgery звучи така, сякаш системата извършва рязане! - person morleyc   schedule 19.10.2014