0131 TIL

jelly·2025년 1월 31일

더티 플래그 패턴(Dirty Flag Pattern)은 객체의 상태가 변경되었는지를 추적하기 위해 사용되는 디자인 패턴입니다. 이 패턴은 객체의 상태가 변경되었을 때만 추가적인 작업(예: 업데이트, 렌더링 등)을 수행하도록 하여 성능을 최적화하는 데 도움을 줍니다.

이 패턴의 기본 아이디어는 객체의 상태가 변경될 때 "더티 플래그"를 설정하고, 이 플래그가 설정된 경우에만 필요한 작업을 수행하는 것입니다. 이를 통해 불필요한 작업을 줄일 수 있습니다.

#include

class Data {
private:
int value;
bool dirtyFlag;

public:
Data() : value(0), dirtyFlag(false) {}

void setValue(int newValue) {
    value = newValue;
    dirtyFlag = true; // 상태가 변경되었으므로 더티 플래그를 설정
}

void update() {
    if (dirtyFlag) {
        // 상태가 변경되었을 때만 업데이트 작업 수행
        std::cout << "Updating value: " << value << std::endl;
        dirtyFlag = false; // 업데이트 후 더티 플래그 초기화
    } else {
        std::cout << "No update needed." << std::endl;
    }
}

};

int main() {
Data data;

data.update(); // No update needed.

data.setValue(42); // 상태 변경
data.update(); // Updating value: 42

data.update(); // No update needed.

return 0;

}

profile
jelly

0개의 댓글