Шрифт:
Обратите внимание на то, что если бы мы объявили функцию
14.1.4. Изменяемость
Основные вопросы, на которые следует ответить, проектируя классы, звучат так: кто может модифицировать данные и как он может это делать? Мы должны гарантировать, что изменение состояния объекта будет осуществляться только членами его класса. Именно для этого предназначены разделы
Как указано в главе 13, мы решили предотвратить прямой доступ к большинству данных-членов класса. Это дает нам возможность проверять “глупые” значения, например отрицательные радиусы у объектов класса
Мы интерпретируем экран (т.е. совокупность объектов класса
14.2. Класс Shape
Класс
• Понятие, которое связывает графические объекты с нашей абстракцией
• Класс, работающий с цветом и стилем, используемыми при рисовании линий. Для этого он хранит члены классов
• Может хранить последовательности объектов класса Point и информацию о том, как их рисовать.
Опытные проектировщики отметят, что класс, обладающий только этими тремя свойствами, может иметь недостаточно общий характер. Однако мы описываем решение, которое очень далеко от общего.
Сначала опишем полный класс, а затем подробно его обсудим.