Топ питань
Часова шкала
Чат
Перспективи

Модель предметної області

З Вікіпедії, вільної енциклопедії

Remove ads

Модель предметної області (англ. Domain model) шаблон проєктування, який пропонує реалізувати бізнес-логіку, використовуючи підхід ООП.

Remove ads

Призначення

У випадку, коли бізнес-логіка містить складні правила, її найкраще описати у вигляді підходу ООП, використовуючи Rich модель. Таким чином, сутності предметної області моделюються у вигляді об'єктів.

Сутності можуть використовувати простий підхід, коли зв'язки між ними відповідають способу їх збереження (наприклад, у базі даних, коли одна сутність відповідає одній таблиці), або складний підхід, коли повністю ігнорується спосіб їх збереження, а до уваги береться саме модель предметної області. Таким чином, об'єкти містять логіку, доступ до даних обмежений відповідним модифікатором доступу, між об'єктами присутні зв'язки наслідування, а також існують класи, що описують логіку та не зберігаються у сховищі.

Перший підхід забезпечує легкий спосіб збереження даних, та він не такий гнучкий для зміни бізнес-логіки. На противагу йому, складний підхід легко дозволяє змінювати логіку, та виникають складності при збереженні чи завантаженні класів із пам'яті.

Remove ads

Реалізація

Нехай дано декілька типів знижок, які можна застосовувати на продукти. Тоді таку предметну область можна описати наступним чином.

interface IDiscount
{
    void apply(Product product);
}
class ChristmasDiscount : IDiscount {

  public void apply(Product product)
  {
     ...
  }
}
...
class Product
{
    private double _price;
    public Price => _price;
    ...
}

Джерела

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads