79
Во второй части пособия мы пытаемся ответить на вопрос, мало
проработанный в литературе на русском языке, а именно: Что же та-
кое хороший ОО дизайн? Слово «design» в контексте ОО подхода пе-
реводится с английского как «проектирование», но мы будем здесь ис-
пользовать именно «дизайн» по причине широкой распространенно-
сти этого англицизма и аббревиатуры OOAD
5
в профессиональной сре-
де.
Эта часть посвящена принципам объектно-ориентированного ди-
зайна и предназначена для студентов, знакомых с основными концеп-
циями ООП и хотя бы с одним ОО языком программрования. Мы не
будем здесь затрагивать вопросы моделирования на языке UML, до-
статочно хорошо изложенные в известном пособии «трех друзей» [4],
и рекомендуем обратиться к этой книге, а за подробным изложением
техники ОО анализа мы отсылаем читателя к книге Г. Буча «ОО анализ
и проектирование» [1].
Автор популярного ОО языка C++ Б.Страуструп как-то заметил,
что вопрос о том, как пишут хорошие ОО программы похож на вопрос
о том, как пишут хорошую английскую прозу. Не претендуя на уме-
ние научить читателя писать «хорошую прозу», мы, однако, попробу-
ем рассмотреть здесь некоторые правила, которые позволяют, как ми-
нимум, идентифицировать проблемы в дизайне системы
6
. Этот набор
принципов не является ортогональным, некоторые их них взаимно до-
полняют и повторяют друг друга, и во многих случаях неправильного
дизайна мы имеем дело с нарушением сразу нескольких из них. Тем не
менее, все они являются широко используемыми и входят в повседнев-
ный словарь архитектора ПО и потому приводятся здесь полностью.
Во избежание искажений смысла, нередких при переводе англий-
ских терминов на русский язык, и учитывая то, что современный ар-
хитектор ПО вынужден ежедневно работать с англоязычной докумен-
5
Object-Oriented Analysis and Design
6
То, что в ООП не существует единственно правильных ответов, а только способы
идентификации неправильных
, лишний раз доказывает, что программирование явля-
ется искусством