Книга: Основы объектно-ориентированного программирования
Четкое разделение ролей
Четкое разделение ролей
Интересно сравнить формальные роли тела и предложения Rescuer:
{prer and INV} Bodyr {postr (xr) INV}
{True} Rescuer {INV}
Входное утверждение сильнее для Bodyr - в то время, когда Rescuer не накладывает никаких требований, перед началом выполнение тела программы (предложения do) должно выполняться предусловие и инвариант. Это упрощает работу Bodyr.
Выходное утверждение также сильнее для Bodyr - в то время, когда Rescuer обязана восстановить только инвариант класса, Bodyr обязана сыграть свою роль и обеспечить истинность выполнения постусловия. Это делает ее работу более трудной.
Эти правила отражают разделение ролей между предложением do и предложением rescue. Задача тела обеспечить выполнение контракта программы, не управляя непосредственно исключениями. Задача rescue - управлять обработкой исключениями, возвращая управление либо телу программы, либо вызывающей программе. Но в обязанности rescue не входит обеспечение контракта.
- Организация пользователей в группы с помощью ролей
- 1.1.7. Взлом паролей
- 4.3.6. Взлом паролей
- 7.5.2. Файлы паролей
- 9.3.5. Разделение кэша
- 14.10. Взлом паролей
- 14.12.6 Защита паролей
- 4.2.6. Способы задавания ролей и ситуации в ролевой игре
- 9.1.1.2. Разделение дескрипторов файлов
- 9.1.1.3. Разделение дескрипторов файлов и close()
- Разделение файлов с помощью NFS
- Использование учетных записей и паролей