Supernovum.ru
|
Это архив форумов. Работающие форумы расположены вот по этой ссылке
Салон (архив)
Философия и методология познания. Литература и искусство. Этика и эстетика.
|
|
Немного не так по сравнению с "даже"... Пользователь: Калигула До (IP-адрес скрыт) Дата: 22, November, 2009 16:09 спасибо вам за попытку объяснить.
Я всегда трудно (даже бывает внутренне болезненно-некомфортно) отношусь к попыткам объяснить привычные вещи непрофессионалам. Наверное это во всякой профессии так. Но мне кажется, в программировании это особенно тяжело, потому, что здесь есть инструментарий реализации философских концепций а это уже - сильно напряжная область ворочанья умом. Не всякому под силу. НЕ В ОБИДУ НИКОМУ. Просто подчас категории и стили мышления программистов ОЧЕНЬ далеки от "обыденного сознания" (даже - "философов", ибо последние, в большинстве случаев, результаты построения своих умопостроений просто не видят на практике - одно словоблудие). Ваше замечание, немного не точно. Наследование не всегда предполагает сокрытие реализации. Часто без разглядывания реализации вообще невозможно понять, что там и как в программе. Но это - уже показатель качества проектирования. (Есть ещё один нюанс, именно в силу которого, я в своём определении наследования назвал его извращением, но здесь мы его, с вашего разрешения, пока обсуждать не будем ) Как раз и при агрегировании можно реализацию хорошо скрыть - переадресовывая вызовы по методам экземплярам с хорошо описанной и отлаженной функциональностью. Здесь вопрос в том, что те, кто выбирает наследование имею склонность к догматическому мышлению, к тому, что им более комфортно размышляется, если экземпляры (по типам, интерфейсам и поведению) ВПИСАНЫ РАЗ И НА ВСЕГДА В ЗАЛОЖЕННУЮ КАРТИНУ ЖИЗНИ (описание предметной области). Просто их поведение обусловлено наследованием от определённых предков. При агрегации же мы можем очень легко изменять само поведение объекта, например, "на лету" переприсвоив соответствующим ссылкам указатели на объекты-реализаторы СОВЕРШЕННО ДРУГОЙ, по поведению и смыслу, функциональности. Только бы сигнатуры вызываемых методов совпадали! В результате объекты, как таковые (в крайнем, вырожденном случае) вообще теряют понятие ТИПОВОСТИ, принадлежности к определённому, заранее описанному классу! Они становятся лишь носителями ссылочночти на другие объекты, реализующие функциональность (или совокупность функциональностей), НЕОБХОДИМЫХ В ДАННЫЙ, КОНКРЕТНЫЙ МОМЕНТ ПО ЗАДАЧЕ. Понимаете, в чём фикус-пикус? К чему я клоню? Поэтому я так резко и выступал против определения в системах "чёткого управляющего центра" и вообще против проектирования систем с жёстко описанными и заданными на всегда типами элементами-исполнителями (речь не о конкретных индивидах, а - о "локальных управляющих и исполнительных элементах", хотя и люди тут - "при чём"). Так вот я подвожу к размышлению, какое из мышлений и подходов к моделированию систем способно к созданию и прогрессу в обществе и в технике. Но есть ещё один нюанс. Общество с "наследственно-типовым" мышлением его членов, может АКТИВНО ПРОТИВОДЕЙСТВОВАТЬ обществу с " "агрегативным подходом в анализе и проектировании". И, на определённом этапе, даже, побеждать. Агрегативный способ (НА НАЧАЛЬНЫХ ЭТАПАХ развития!) ЗАТРАТНЕЙ! Но, с огромной отдачей и гибкостью ПОТОМ. Его удачей будет проскочить этот этап, когда на относительно простых и не сложных системах "типово-наследственное" мышление будет брать верх по всем фронтам. Ведь этому же даже в моей практике - МАССА примеров. Пока программа не велика ("пилотный проект") - "умные мальчики", "на каленках", создают довольно впечатляющие поделки и показушные изделия. Но, в дальнейшем, при росте требований, их усложнении, развитии системы, они вынуждены весь свой мир (набор классов, описывающий предметную область) ПОСТОЯННО "реинженирить". Собственно, часто в многих коллективах именно это и стаёт основным родом деятельности! Получается, что система уже захлёбывается под тяжестью собственной архитектуры и УСИЛИЙ коллектива по ЕЁ ПОДДЕРЖАНИЮ. ЧАСТО получается что система с такими "наследственными подходами" уже совершенно не сооьвеьсьвует текущему пониманию предметки, но коллектив просто ВЫНУЖДЕн "тянуть" её ("поддерживать"). Я такие системы видел! Там код обработки исключений (не в смысле ошибочных ситуаций, а - несовпадением с правилами первоначальной модели), начинает преобладать, по объёму, над "штатным проведением" элементов модели. Именно это я и подразумеваю при размышлении над социальными и производственными системами... Теперь вопрос, те ли себя считают адекватно "умными, выше среднего показателя"? Система-то усложняется! И "меры принуждения" ни до чего хорошего привести не могут. Нувотпримернокактотак... ЗЫ я прошу прощения, я сейчас не со своего компа пишу - с лаптопа у знакомого - необычная клава, возможно много ошибок. |