Обробник таблиці (Table Module)
Обробник таблиці (англ. Table Module) — шаблон проєктування, який пропонує об'єднати всю бізнес-логіку для усіх збережених даних в одному об'єкті.
Традиційний ООП підхід пропонує об'єднати дані та логіку їх обробки. Тоді при збережені даних кожному екземплярові відповідає окремий запис в сховищі. Така структура працює добре, коли потрібно для кожного об'єкта окремо виконувати операції редагування. У випадку, коли необхідно виконувати однакові операції для багатьох сутностей нам необхідно отримати зі сховища усі сутності.
Обробник таблиці пропонує альтернативний підхід. Він дозволяє об'єднати дані та поведінку в одному об'єкті при цьому скористатись усіма перевагами обраного сховища даних. Обробник таблиці подібний до звичайного об'єкта, але для нього відсутнє поняття ідентичності. При цьому операції будуть застосовуватись до всіх записів в сховищі.
Таким чином, основна відмінність від моделі предметної області полягає в тому, що якщо є декілька записів у сховищі, то об'єкт буде створюватись для кожного із них в той час, як обробник таблиці буде керувати усіма записами за допомогою одного об'єкта.
class Product { private Db _db; public double Name { get; set; } public double Price { get; set; } public Product(Db db) { _db = db; } public void GetById(int id) { var record = _db.Products.Find(id); Name = record.Name; Price = record.Price; } public int Create() { var id = _db.Add(this); return id; } public void Update(Predicate<Product> predicate) { _db.Products.Where(predicate).Put(this); } }
- Table Module [Архівовано 22 липня 2020 у Wayback Machine.]