Четкое разделение ролей
Четкое разделение ролей
Интересно сравнить формальные роли тела и предложения Rescuer:
{prer and INV} Bodyr {postr (xr) INV}
{True} Rescuer {INV}
Входное утверждение сильнее для Bodyr - в то время, когда Rescuer не накладывает никаких требований, перед началом выполнение тела программы (предложения do) должно выполняться предусловие и инвариант. Это упрощает работу Bodyr.
Выходное утверждение также сильнее для Bodyr - в то время, когда Rescuer обязана восстановить только инвариант класса, Bodyr обязана сыграть свою роль и обеспечить истинность выполнения постусловия. Это делает ее работу более трудной.
Эти правила отражают разделение ролей между предложением do и предложением rescue. Задача тела обеспечить выполнение контракта программы, не управляя непосредственно исключениями. Задача rescue - управлять обработкой исключениями, возвращая управление либо телу программы, либо вызывающей программе. Но в обязанности rescue не входит обеспечение контракта.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
9.1.1.2. Разделение дескрипторов файлов
9.1.1.2. Разделение дескрипторов файлов Атрибуты, которые порожденный процесс наследует от родителя, устанавливаются в те же значения, которые были в родительском процессе в момент выполнения fork(). Однако, с этого момента два процесса продолжают идти собственными путями
11.2.2 Разделение памяти
11.2.2 Разделение памяти Процессы могут взаимодействовать друг с другом непосредственно путем разделения (совместного использования) участков виртуального адресного пространства и обмена данными через разделяемую память. Системные функции для работы с разделяемой
9.3.5. Разделение кэша
9.3.5. Разделение кэша Чтобы ваш сервер мог обмениваться запросами с другими squid-серверами, разделяя таким образом содержимое кэша, вы должны настроить соответствующий протокол.Дня этого есть следующие директивы:? icp_port n — номер порта, который будет использоваться для
Разделение файлов с помощью NFS
Разделение файлов с помощью NFS Для того чтобы обеспечить совместное использование файлов, надо сообщить серверу NFS о том, какие каталоги должны экспортироваться и какие клиенты имеют право доступа к конкретным каталогам. Кроме того, необходимо указать опции, управляющие
15.7. Разделение канала
15.7. Разделение канала Допустим, вам нужно настроить прокси-сервер таким образом, чтобы одна группа компьютеров могла работать с одной скоростью, а другая — с другой. Это может потребоваться, например, для разграничения пользователей, которые используют канал для работы,
Разделение рисунка по слоям
Разделение рисунка по слоям Построенные объекты всегда размещаются на определенном слое. Например, один слой может содержать несущие конструкции, стены, перегородки здания, другой слой – коммуникации, электрику и т. п., а третий – мебель, элементы дизайна и т. д. Таким
Разделение тел
Разделение тел При разделении трехмерного тела команду редактирования SOLIDEDIT следует вызывать из падающего меню Modify ? Solid Editing ? Separate либо щелчком на пиктограмме Separate на плавающей панели инструментов Solid Editing. В команде используются ключи Body, Separate.При использовании команды
7.7. Разделение диапазона
7.7. Разделение диапазона ПроблемаИмеется диапазон элементов, которые требуется каким-либо образом разделить на группы. Например, необходимо переместить в начало диапазона все элементы, которые меньше определенного значения.РешениеДля перемещения элементов
Разделение рисунка по слоям
Разделение рисунка по слоям Построенные объекты всегда размещаются на определенном слое. Например, один слой может содержать несущие конструкции, стены, перегородки здания, другой слой – коммуникации, электрику и т. п., а третий – мебель, элементы дизайна и т. д. Таким
Разделение тел
Разделение тел При разделении трехмерного тела команду редактирования SOLIDEDIT следует вызывать из падающего меню Modify ? Solid Editing ? Separate либо щелчком на пиктограмме Separate на плавающей панели инструментов Solid Editing. В команде используются ключи Body, Separate.При использовании команды
Разделение рисунка по слоям
Разделение рисунка по слоям Построенные объекты всегда размещаются на определенном слое. Например, один слой может содержать несущие конструкции, стены, перегородки здания, другой слой – коммуникации, электрику и т. п., а третий – мебель, элементы дизайна и т. д. Таким
Разделение тел
Разделение тел При разделении трехмерного тела команду редактирования SOLIDEDIT следует вызывать из падающего меню Modify ? Solid Editing ? Separate либо щелчком на пиктограмме Separate на плавающей панели инструментов Solid Editing. В команде используются ключи Body, Separate.При использовании команды
Разделение и объединение сцен
Разделение и объединение сцен В этом подразделе речь пойдет о тех же операциях разделения (разбивки) и объединения сцен, о которых было рассказано в гл. 3. Данные действия в окне Фильм имеют некоторые особенности, о которых следует упомянуть.Любую помещенную в проект сцену
Разделение ключа
Разделение ключа Говорят, что секрет — это уже не секрет, когда его знают двое. Разделение закрытого ключа опровергает такое мнение. Хотя это и не рекомендуемая практика, разделение закрытого ключа в определённых ситуациях бывает необходимо. Например, корпоративные