Шлюз до даних запису (шаблон проєктування)

Шлюз до даних запису (англ. Row Data Gateway) — шаблон проєктування, який пропонує створити прошарок між доменним об'єктом та сховищем збереження даних.

Опис ред.

Якщо доменний об'єкт містить бізнес-логіку, то додавання до нього взаємодії із базою даних, може ускладнити роботу із цим об'єктом.

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

Реалізація ред.

// шлюз до даних запису
class PersonGateway
{
        public void getNumberOfDependent(int id)
        {
           // завантажуємо зі сховища
            . . .
        }
}

// доменний об'єкт
public class Person
{
        public PersonGateway _personGateway;

        public int Id { get; set; }
        public string Name { get; set; }

        public Person(PersonGateway personGateway)
        {
           _personGateway = personGateway;
        }

        public void getNumberOfDependent()
        {
           // не змішуємо бізнес-логіку із доступом до сховища
           return _personGateway.getNumberOfDependent(this.Id);
        }
}

Джерела ред.