제 애플리케이션에는 많은 수업이 있습니다. 이 클래스의 대부분은 꽤 많은 데이터를 저장합니다. 데이터 클래스 중 하나의 내용이 변경되면 내 응용 프로그램의 다른 모듈도 '업데이트'되는 것이 중요합니다.데이터 변경을 관찰하는 여러 가지 방법
이 작업을 수행하는 일반적인 방법은 다음과 같이이다 : 회원이 자주 변경되지 않고 '관찰 클래스'필요로하는 경우 이것은 매우 좋은 방법입니다
void MyDataClass::setMember(double d)
{
m_member = d;
notifyAllObservers();
}
- - 날짜 빨리 가능한 한.
의 변화를 관찰하는 또 다른 방법은 이것이다 :
void MyDataClass::setMember(double d)
{
setDirty();
m_member = d;
}
이 회원이 여러 번 변경되는 경우 좋은 방법, 전혀 정기적으로 '더러운'인스턴스에서 '관찰 클래스'모습이다.
불행히도, 내 수업에는 두 가지 종류의 데이터 멤버가 혼합되어 있습니다. 일부는 자주 변경되지 않고 (정상적인 관찰자와 함께 살 수 있습니다.) 다른 것들은 여러 번 여러 번 변경됩니다 (이는 복잡한 수학 알고리즘 내에 있음). 그리고 값 변경이있을 때마다 관찰자를 호출하면 응용 프로그램의 성능이 저하됩니다.
데이터 변경을 관찰하는 다른 방법이나 데이터 변경을 관찰하는 여러 가지 다른 방법을 쉽게 결합 할 수있는 패턴이 있습니까?
이 언어는 다소 언어 독립적 인 질문이지만 (다른 언어로 된 예제를 이해하려고 시도 할 수도 있음) 최종 해결책은 C++에서 작동해야합니다.
인상적입니다. +1. – Patrick
동일한 주제에 관한 새로운 질문 (Patrick) : http://stackoverflow.com/questions/3667317/best-way-to-keep-the-user-interface-up-to-date 많은 사건이 공연을 죽일 수 있습니다. –