저장값 축소
다른 멤버에서 계산 가능한 값은 캐시 필요가 있을 때만 저장한다.
멤버 변수는 객체가 기억해야 할 최소 상태이고, 멤버 함수는 그 상태를 어떤 언어로 바꿀지 정한다. const와 static이 경계를 또렷하게 만든다.
다른 멤버에서 계산 가능한 값은 캐시 필요가 있을 때만 저장한다.
조회 함수가 객체를 바꾸지 않는다는 사실을 타입 시스템에 맡긴다.
객체마다 다른 값과 클래스 전체에 걸친 설정을 섞지 않는다.
class Buffer {
public:
std::size_t size() const { return data_.size(); }
void append(std::string_view chunk) { data_ += chunk; }
private:
std::string data_;
};