더티 플래그 패턴(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;
}