powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Выгоды контрактного программирования (design by contract)
7 сообщений из 232, страница 10 из 10
Выгоды контрактного программирования (design by contract)
    #36929323
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN,

к сжалению, забыл топологию вскяие там морфизмы и т.д
...
Рейтинг: 0 / 0
Выгоды контрактного программирования (design by contract)
    #36929537
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это не топология, а теория категорий.






пысы
ну, у Сибилева и ЛаТех, шоб он был здоров.
Поехать мозгом можно, пока нарисуешь
...
Рейтинг: 0 / 0
Выгоды контрактного программирования (design by contract)
    #36929540
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Выгоды контрактного программирования (design by contract)
    #36929553
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNtchingiz
1
на месте прямоугольника, квадрат не должен работать в точь-в-точь как прямоугольник.

может все же не обязан, но все же может?

может, в случае если будет идеалом.
при переходе от прямоугольников к квадратам произошло сужение домена класса, а должно быть расширение.
Вот приблизительно так происходило расширение доменов классов в цепочке:

1
множество натуральных. есть функция следующий и принцип матиндукции;
2
полугруппа натуральных. добавлена операция сложения и сохранена аксиома, что есть первый элемент (отнимание не замкнуто);
3
группа целых. Добавлена операция взятие обратного по сложению. Отброшена аксиома, что есть первый элемент;
4
кольцо целых. Добавлена операция умножение. Сохранена аксиома, что единица не представима
в сумму двух одинаковых элементов домена;
5
поле рациональных. Добавлена операция взятия обратного по умножению, отброшена аксиома, что единица не представима в виде двух одинаковых элементов домена;

--
1 2 3 4 5 - каждый N - й класс, является подклассом предыдушего N-1.
Причем на каждом шаге домен класса или расширяется или остается тем же самым.

тип 3 не является подтипом 2.
тип 5 не является подтипом 4
...
Рейтинг: 0 / 0
Выгоды контрактного программирования (design by contract)
    #36929557
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychtchingiz, вот да, именно это я и пытался донести нашему общему другу ZiK_BotaN.

PS используя его технику легко отнаследовать квадрат от круга, например.. Но это же абсурд
PSS tchigiz, красивенько получилось :-))
на этой радостной ноте пишем обобщение принципа подстановки Лисков
до критерия подстановки



автор

Пусть T и S некоторые классы. Любая программа P, использующая
обращения к переменной t: T, продолжает удовлетворять своей
спецификации при присвоении t значения любой переменной s: S,
с возможностью обратного присваивания нового значения из t в s после выполнения P,
тогда и только тогда, когда спецификация класса (тип) S является подтипом спецификации класса (типа)T.
...
Рейтинг: 0 / 0
Выгоды контрактного программирования (design by contract)
    #36929559
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingiz,

мы выяснили, что квадрат не является подтипом прямоугольника.
давай теперь решим задачку, как нам наилучшим образом реализовать контракт из задачки:

ZyK_BotaN
Есть класс прямоугольников, и есть подпрограммы, которые умеют работать только с прямоугольником у которого все стороны равны. Как нам обезопасить использование этих подпрограмм?

моим решением, является иерархия представленная выше, но у нее есть огромный недостаток - неизменяемость данных. как решить ту же проблему для изменяемых объектов я не знаю.
...
Рейтинг: 0 / 0
Выгоды контрактного программирования (design by contract)
    #36929563
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я все сразу не могу делать.
Дальнейшее обсуждение продолжается в
/topic/802380&pg=-1

чтобы критерий подставновки не утонул в ерунде
...
Рейтинг: 0 / 0
7 сообщений из 232, страница 10 из 10
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Выгоды контрактного программирования (design by contract)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]