Rolandas wrote:Sabina wrote:Читаю первую главу ...
- abstraction
- encapsulation
- modularity
Вобще-то все эти три понятия - три аспекта encapsulation (в широком смысле):
abstraction - пользователь [класса] не должен знать о подробностях реализации, чтобы им пользоваться;
Не совсем так. Абстракция - это умение абстрагировать стиуацию на уровне классов и их функциональности. Отюда и ADTs (abstract data types). То есть тут не только инкапсуляция, но и наследование и полиморфизм.
Rolandas wrote:encapsulation (в узком смысле) - пользователь [класса] не должен иметь доступа к подробностям реализации;
Тут я полностью согласна.
Rolandas wrote:modularity - классы должны быть независимыми и самодостаточными (loose coupling and high cohesion)
Тут опять все три по моему мнению. Чтобы выделенные модули правильно и эффективно решали поставленную проблему, нельзя их дизайнить без наследования и полиморфизма в голове.
Вопрос-то я задала потому, что первый раз сталкиваюсь с таким выделением составляющих OO подхода: abstraction, modularity, encapsulation.
Это что-то типичное для большинства книг по С++?
Для автора данной книги?
Сабина