originator.h
#ifndef ORIGINATOR_H
#define ORIGINATOR_H
#include <QString>
#include <QtDebug>
#include "memento.h"
class Originator
{
public:
Originator(){}
Memento *createMemento()
{
Memento *memento = new Memento();
memento->setState(m_state);
return memento;
}
void setMemento(Memento *memento)
{
m_state = memento->getState();
}
void setState(QString state){ m_state = state; }
void show()
{
qDebug() << m_state;
}
private:
QString m_state;
};
#endif // ORIGINATOR_H
memento.h
#ifndef MEMENTO_H
#define MEMENTO_H
#include <QString>
class Memento
{
public:
Memento(){}
QString getState(){ return m_state; }
void setState(QString state){ m_state = state; }
private:
QString m_state;
};
#endif // MEMENTO_H
caretaker.h
#ifndef CARETAKER_H
#define CARETAKER_H
#include <QString>
#include "memento.h"
class Caretaker
{
public:
Caretaker(){}
void setMemento(Memento *memento){ m_memento = memento; }
Memento *getMemento(){ return m_memento;}
private:
Memento *m_memento;
};
#endif // CARETAKER_H
UML