Auch in diesem Teil sehen wir uns ein Entwurfsmuster an, dass seine Wurzeln in den verteilten Anwendungen hat. Mit dem Data Transfer Object werden Daten zum Beispiel von der Geschäftslogikschicht zur Präsentationsschicht gesendet.In welchen Szenarien man das nutzt, wurde viel und kontrovers diskutiert. Wie üblich werde ich mich nicht daran beteiligen. Sehen wir uns stattdessen eine Implementierung an.

public class Category implements Serializable {
  private static final long serialVersionUID = -634769734481963428L;
  private String descr;
  private String id;
  private transient int tasks;

  public Category() {
    this(null, null, 0);
  }

  public Category(String descr, String id, int tasks) {
    this.descr = descr;
    this.id = id;
    this.tasks = tasks;
  }

  public String getDescr() {
    return descr;
  }

  public void setDescr(String descr) {
    this.descr = descr;
  }

  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }

  public int getTasks() {
    return tasks;
  }

  public void setTasks(int tasks) {
    this.tasks = tasks;
  }
}

Die Klasse Category implementiert das Interface java.io.Serializable, hat unter anderem einen parameterlosen Konstruktor und bietet zu jeder privaten Variable lesende und schreibende Zugriffsmethoden Das ganze …richtig… riecht nach den guten alten JavaBeans. Wichtig ist nur, dass Sie in solche Klassen keinerlei Logik reinpacken. Es handelt sich um Datencontainer, die beliebig gelesen und geschrieben werden können.


This is a (slightly updated) repost of a piece I published on my blog Tommi’s Blog. I deleted the blog in the wake of the GDPR, so the original version is no longer available, or only through the WayBack Machine of the Internet Archive. Please note: code usually has not been updated, so language feature reflect the time the original post was written.