Сценарій транзакції (програмування) — Вікіпедія
Сценарій транзакції (англ. Transaction script) — шаблон проєктування, який пропонує реалізувати бізнес-логіку в межах однієї процедури.
Більшість аплікацій містять логіку, яку можна представити у вигляді набору дій. Одні з них витягують дані, в той час, як інші складніші — проводять валідацію, обробку та зміну. Даний патерн пропонує об'єднати логіку таких дій в одну команду.
- простий в реалізації
- виконуються принципи ACID
- відсутній архітектурний поділ
- важко розширювати функціонал
- можливе дублювання коду
Нехай необхідно створити користувача та відправити адміністратору сповіщення. Ці дії можна зробити незалежно, в різних транзакціях. В той час, як даний шаблон пропонує реалізувати всю логіку в межах однієї функції.
class UserService { public void CreateUser(string userName) { // валідація if (string.IsNullOrWhiteSpace(userName)) { throw new InvalidOperationException(); } // створення користувача var user = new User(userName); db.Add(user); // створення сповіщення var notification = new Notification("New user has been created"); db.Add(notification); // здійснення транзакції db.Commit(); } }
- Transaction Script [Архівовано 11 листопада 2020 у Wayback Machine.]
- Transaction Script Pattern [Архівовано 12 листопада 2020 у Wayback Machine.]
- TheBusiness logic layer: Transaction Script Pattern [Архівовано 8 жовтня 2016 у Wayback Machine.]