Сценарій транзакції (програмування)
Перейти до навігації
Перейти до пошуку
Сценарій транзакції (англ. 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.]