Цепочка обязанностей.

Обсуждаем, как правильно строить приложения
Ответить
Аватара пользователя
Chelobaka
Сообщения: 201
Зарегистрирован: 2018.06.01, 09:54

Цепочка обязанностей.

Сообщение Chelobaka » 2019.10.08, 13:57

Здравствуйте,

Имеет ли смысл делать проверку цепочкой обязанностей. Например проверка статуса статьи.
Проверка возможности получения статьей нового статуса.

Вместо:

Код: Выделить всё

if ($new_staus = Delete && $old_status = 'published' ) {
	throw new Error('published alredy');
}

if($new_status < $old_status) {
	throw new Error('reverse '); 
}
Цепочку:

Код: Выделить всё


$isPublished = new IsPublished();
$isReversed = new isReversed(isPublished);
$check = new $checStatus($new_status, $old_status);
$check-->isReversed-->isPublished-->end()

Аватара пользователя
ElisDN
Сообщения: 5428
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Цепочка обязанностей.

Сообщение ElisDN » 2019.10.08, 14:36

Для статусов удобнее State.

Аватара пользователя
samdark
Администратор
Сообщения: 9195
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Цепочка обязанностей.

Сообщение samdark » 2019.10.08, 17:06

В некоторых случаях имеет.

Ответить