private:
Rate rebatePercentage;
};
Как видите, иерархия или наследование существенно упростила класс CreditCard. С минимальными усилиями мы получили класс, умеющий запоминать процент скидки, ежемесячные выплаты, обслуживать выплаты и вклады, а также подсчитывать текущий баланс — с единственной функцией-членом, специфичной только для CreditCard; все остальное досталось ему по наследству. Таким образом, иерархия — это еще одна характеристика объектов, которую всегда следует пытаться отыскать, занимаясь объектно-ориентированными анализом и проектированием.
Теперь, когда вы знакомы с необходимыми свойствами объектов и некоторой сопутствующей терминологией, давайте поглубже разберемся, как происходит взаимодействие между абстрактными объектами в вашей проблемной области.
*'
Обзор анализа и проектирования
Понятия объектно-ориентированного анализа, проектирования и программирования весьма близки и нередко употребляются одно вместо другого (это можно было заметить уже в этой главе). Но, прежде чем идти дальше, давайте все же кратко обозначим различия между ними:
• С объектно-ориентированного анализа, как правило, начинается цикл разработки; вы рассматриваете задачу с точки зрения классов и объектов.
• На стадии проектирования у вас уже сформировалось отчетливое представление о проблеме как совокупности сущностей и их взаимоотношений, и вы начинаете разбивать задачу на реальные классы и объекты.
• Объектно-ориентированное программирование заключается собственно в воплощении в жизнь ваших классов и объектов (используя, в данном случае, C++).
В этой главе основное внимание было уделено анализу и проектированию;
остальная часть книги всецело посвящена реализации.
Замечание
Теме объектно-ориентированного анализа и проектирования посвящено немало замечательных глубоких трудов; но практически все, авторы — как теоретики, так и практики — согласны с мнением отца-основателя C++ Бъярна Страуструпа (Bjarne Stroustrop), утверждающего, что совершенных правил идентификации объектов проблемной области не бывает. Имейте это в виду и всегда помните, что то, что работает у вас, настолько же хорошо, как все, что вы можете вынести из книги. Экспериментируйте, учитесь на своих успехах и своих ошибках — это самое лучшее правило.