Ця стаття має кілька недоліків. Будь ласка, допоможіть удосконалити її або обговоріть ці проблеми на .
|
Модель предметної області (англ. Domain model) — шаблон проєктування, який пропонує реалізувати бізнес-логіку, використовуючи підхід ООП.
Призначення
У випадку, коли бізнес-логіка містить складні правила, її найкраще описати у вигляді підходу ООП, використовуючи (Rich модель). Таким чином, сутності предметної області моделюються у вигляді об'єктів.
Сутності можуть використовувати простий підхід, коли зв'язки між ними відповідають способу їх збереження (наприклад, у базі даних, коли одна сутність відповідає одній таблиці), або складний підхід, коли повністю ігнорується спосіб їх збереження, а до уваги береться саме модель предметної області. Таким чином, об'єкти містять логіку, доступ до даних обмежений відповідним модифікатором доступу, між об'єктами присутні зв'язки наслідування, а також існують класи, що описують логіку та не зберігаються у сховищі.
Перший підхід забезпечує легкий спосіб збереження даних, та він не такий гнучкий для зміни бізнес-логіки. На противагу йому, складний підхід легко дозволяє змінювати логіку, та виникають складності при збереженні чи завантаженні класів із пам'яті.
Реалізація
Нехай дано декілька типів знижок, які можна застосовувати на продукти. Тоді таку предметну область можна описати наступним чином.
interface IDiscount { void apply(Product product); } class ChristmasDiscount : IDiscount { public void apply(Product product) { ... } } ... class Product { private double _price; public Price => _price; ... }
Джерела
- Domain model [ 31 жовтня 2020 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya maye kilka nedolikiv Bud laska dopomozhit udoskonaliti yiyi abo obgovorit ci problemi na Cya stattya pokladayetsya znachnoyu miroyu chi cilkom na yedine dzherelo Ce mozhe prizvesti do porushen nejtralnosti ta nedostatnoyi perevirnosti vmistu Bud laska dopomozhit dodavshi posilannya na dodatkovi dzherela 24 veresnya 2020 Cya stattya mistit perelik posilan ale pohodzhennya tverdzhen u nij zalishayetsya nezrozumilim cherez praktichno povnu vidsutnist vnutrishnotekstovih dzherel vinosok Bud laska dopomozhit polipshiti cyu stattyu peretvorivshi dzherela z pereliku posilan na dzherela vinoski u samomu teksti statti 24 veresnya 2020 Model predmetnoyi oblasti angl Domain model shablon proyektuvannya yakij proponuye realizuvati biznes logiku vikoristovuyuchi pidhid OOP PriznachennyaU vipadku koli biznes logika mistit skladni pravila yiyi najkrashe opisati u viglyadi pidhodu OOP vikoristovuyuchi Rich model Takim chinom sutnosti predmetnoyi oblasti modelyuyutsya u viglyadi ob yektiv Sutnosti mozhut vikoristovuvati prostij pidhid koli zv yazki mizh nimi vidpovidayut sposobu yih zberezhennya napriklad u bazi danih koli odna sutnist vidpovidaye odnij tablici abo skladnij pidhid koli povnistyu ignoruyetsya sposib yih zberezhennya a do uvagi beretsya same model predmetnoyi oblasti Takim chinom ob yekti mistyat logiku dostup do danih obmezhenij vidpovidnim modifikatorom dostupu mizh ob yektami prisutni zv yazki nasliduvannya a takozh isnuyut klasi sho opisuyut logiku ta ne zberigayutsya u shovishi Pershij pidhid zabezpechuye legkij sposib zberezhennya danih ta vin ne takij gnuchkij dlya zmini biznes logiki Na protivagu jomu skladnij pidhid legko dozvolyaye zminyuvati logiku ta vinikayut skladnosti pri zberezhenni chi zavantazhenni klasiv iz pam yati RealizaciyaNehaj dano dekilka tipiv znizhok yaki mozhna zastosovuvati na produkti Todi taku predmetnu oblast mozhna opisati nastupnim chinom interface IDiscount void apply Product product class ChristmasDiscount IDiscount public void apply Product product class Product private double price public Price gt price DzherelaDomain model 31 zhovtnya 2020 u Wayback Machine