Книга: Основы объектно-ориентированного программирования
Права и обязательства
Права и обязательства
Связывая с программой r предложения require pre и ensure post, класс говорит своим клиентам:
"Если вы обещаете вызвать r в состоянии, удовлетворяющем pre, то я обещаю в заключительном состоянии выполнить post".
В отношениях между людьми и компаниями контракт - это письменный документ, фиксирующий отношения. Удивительно, что в программной индустрии, где точность так важна и двусмысленность так рискованна, эта идея так долго не появлялась. Любой хороший контракт устанавливает для обоих участников как обязательства, так и приобретаемую выгоду; обычно обязательства одного оборачиваются выгодой для другого участника, и это взаимно. Все это верно и для контрактов между классами.
[x]. Предусловие связывает клиента: определяются условия, при которых вызов программы клиентом легитимен. Обязательства клиента приносят пользу поставщику.
[x]. Постусловие связывает класс: программа обязана обеспечить условия по ее завершению. Здесь польза клиента оборачивается обязательствами поставщика класса.
Вот пример контракта для одной из программ нашего примера:
put | Обязательства | Преимущества |
---|---|---|
Клиент | ||
Поставщик |
Таблица 11.1.Контракт программы: программа put класса стек
- Права для выполнения резервного копирования
- Права
- Как правильно раздавать и аннулировать права
- Раздел VII Левиафан в Сети: защита права на тайну частной жизни после событий 2013 г.
- 9.4. Права доступа к squid
- 1.1. Понятие рекламного права и рекламного законодательства
- Можно ли копировать права доступа вместе с данными?
- Как узнать, есть ли у меня права администратора?
- 4.1. Права доступа
- 6.5. Привилегии (права) пользователя
- 4.1.4. Права по умолчанию
- 4.1.5. Права доступа к ссылкам