mrTsjolder / SWOP-KULAK

Source code for project Software design
GNU General Public License v2.0
0 stars 1 forks source link

Memento #34

Closed Xenolel closed 9 years ago

Xenolel commented 9 years ago

Momenteel wordt de interne staat van klassen die memento implementeren blootgegeven wat niet de bedoeling is in memento.

De enige manier die ik ken om dit op te lossen heeft echter interne klassen nodig waarvan ik helemaal niet zeker ben of het wel goed design is:

public class Task
{
   public void setMemento(Object m)
   {
      Memento memento = (Memento)m;
      this.alternativeTask = memento.getAlternativeTask();
      ...
   }
   public Object createMemento()
   {
      return new Memento(alternativeTask, ...);
   }
   private class Memento
   {
      private Task alternativeTask;
      public Task getAlternativeTask() { return alternativeTask; }
      public Memento(Task alternativeTask, ...)
      {
         this.alternativeTask = alternativeTask;
         ...
      }
   }
}
Xenolel commented 9 years ago

we gebruiken public inner classes met private getters en private constructor