Математика и ООП: аналогии
От: Кирилл Осенков Украина
Дата: 31.10.03 21:06
Оценка: 63 (8)
Чем больше я проникаюсь идеями ООП, тем больше возникает ощущение, что я это уже где-то видел

Например, вот развитие понятия интерфейса в ООП. Начиналось все с того, что некоторые данные из structа научились скрывать. Потом началось повальное скрытие данных — инкапсуляция . И уже в то время оформились обратные идеи — вместо того, чтобы скрывать некоторые данные из всех доступных, надо скрыть все и выдать нагора тщательно отмеренную чуточку — интерфейс. Просто дать обязательство, что помимо всего прочего, я мол являюсь по совместительству и этим-то.

С появлением Паттернов от Банды Четырех эта идея окончательно оформилась — вместо того, чтобы скрыть побольше, надо стремиться показать поменьше. Теперь у нас есть интерфейс, и мы можем с ним работать, ничего не зная о том, что за сущность за ним скрывается — и нам собственно все равно, главное, что она реализовывает нужный нам интерфейс.

А теперь вспомним, как развивались определения в математике. Сначала просто тыкали пальцем — вот это то, а вот это — это. А потом появились аксиоматические определения — например, расстояние — это любая штука такого-то рода, удовлетворяющая таким-то и таким-то аксиомам. И нам все равно, что это за расстояние — евклидова метрика на плоскости, или метрика Хаусдорфа на пространстве компактов. Ну как здесь не сказать, что например, норма реализует интерфейс "расстояние"?

Или вот еще — иерархия классов и множество теорем в математике. Если разрешить множественное наследование, то каждый новый класс наследует какое-то количество уже созданных, а каждая теорема опирается в доказательстве на какое-то подмножество уже доказанных. И при этом верхушки иерархий — интерфейсы или аксиоматические определения.

У теоремы есть утверждение и доказательство — интерфейсная часть и реализация.

Многие теоремы напоминают паттерн Адаптер — берут результат одной теоремы (утверждение которой тяжело прямо использовать в рассматриваемой модели), мучают-мучают преобразованиями — и в удобоваримом виде применяют результат в рассматриваемой теории.

Пишите, что думаете — интересны ваши мысли и наблюдения по этому поводу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.