Байланысты: Бьерн Страуструп. Язык программирования С . М Бином, 2011
12.5 Свод правил В этой главе мы коснулись многих тем, но, как правило, избегали давать настоятельные и конкретные
рекомендации по рассматриваемым вопросам. Это отвечает моему убеждению, что нет "единственно
верного решения". Принципы и приемы следует применять способом, наиболее подходящим для
конкретной задачи. Здесь требуются вкус, опыт и разум. Тем не менее, можно предложить свод правил,
которые разработчик может использовать в качестве ориентиров, пока не приобретет достаточно
опыта, чтобы выработать лучшие. Этот свод правил приводится ниже.
Он может служить отправной точкой в процессе выработки основных направлений проекта конкретной
задачи, или же он может использоваться организацией в качестве проверочного списка. Подчеркну еще
раз, что эти правила не являются универсальными и не могут заменить собой размышления.
• Нацеливайте пользователя на применение абстракции данных и объектно-ориентированного
программирования.
-
Постепенно переходите на новые методы, не спешите.
-
Используйте возможности С++ и методы объектно-ориентированного программирования
только по мере надобности.
• Добейтесь соответствия стиля проекта и программы.
• Концентрируйте внимание на проектировании компонента.
• Используйте классы для представления понятий.
-
Используйте общее наследование для представления отношений "есть".
-
Используйте принадлежность для представления отношений "имеет".
-
Убедитесь, что отношения использования понятны, не образуют циклов, и что число их
минимально.
-
Активно ищите общность среди понятий области приложения и реализации, и возникающие в
результате более общие понятия представляйте как базовые классы.
• Определяйте интерфейс так, чтобы открывать минимальное количество требуемой информации:
-
Используйте, всюду где это можно, частные данные и функции-члены.
-
Используйте описания public или protected, чтобы отличить запросы разработчика
производных классов от запросов обычных пользователей.
-
Сведите к минимуму зависимости одного интерфейса от других.
-
Поддерживайте строгую типизацию интерфейсов.
-
Задавайте интерфейсы в терминах типов из области приложения.
Дополнительные правила можно найти $$11.5.