Совет C ++ от Code Complete по инкапсуляции?

В разделе «Хорошая инкапсуляция» в Code Complete рекомендуется скрыть частные детали реализации. Пример приведен на C ++. Идея состоит в том, чтобы полностью отделить интерфейс от реализации, даже на уровне класса.

class Employee {
public:
    ...
    Employee( ... );
    ...

    FullName GetName() const;
    String GetAddress() const;

private:
    EmployeeImplementation *m_implementation;
};

Действительно ли это хорошее использование времени? Мало того, что это кажется неэффективным (какие потери производительности это приведет?), Но и весь девиз Code Complete («управление сложностью»), похоже, полностью перевернут - разве это не добавляет сложности?

6
задан fredoverflow 12 June 2011 в 08:51
поделиться