В разделе «Хорошая инкапсуляция» в Code Complete рекомендуется скрыть частные детали реализации. Пример приведен на C ++. Идея состоит в том, чтобы полностью отделить интерфейс от реализации, даже на уровне класса.
class Employee {
public:
...
Employee( ... );
...
FullName GetName() const;
String GetAddress() const;
private:
EmployeeImplementation *m_implementation;
};
Действительно ли это хорошее использование времени? Мало того, что это кажется неэффективным (какие потери производительности это приведет?), Но и весь девиз Code Complete («управление сложностью»), похоже, полностью перевернут - разве это не добавляет сложности?