Я ищу шаблон механики / дизайна, который позволяет настроить объект таким образом, чтобы механик замечал, если объект был изменен после определенной точки существования (например, строительство).В идеале объект мог бы также получить информацию о своем изменении.
Я представляю своего рода интеллектуальный указатель и / или интерфейс, который отмечает доступ для записи и сообщает об этом объекту.
Возможный вариант использования: Объекты, содержимое которых было загружено из файла, должны быть записаны в файл, если они были изменены при разрушении.
Тривиально, вы можете просто реализовать все установщики объекта для индивидуального подсчета доступа к записи.
class A
{
string filename;
unsigned int altered;
int m_a, m_b, M_c;
public:
A(string filename) : filename(filename), altered(0) { /* parse file */ }
~A() { if(altered) {/* write out to file */} }
void setA(int a) {altered++; m_a = a}
void setB(int b) {altered++; m_b = b}
void setC(int c) {altered++; m_c = c}
};
Это довольно сложно поддерживать и не очень элегантно.Также такое решение не очень переносимо для других типов объектов.