Informatik

Eine neue Nachricht

MessageOverflow

Das Nachrichtenarray (messages) unseres Messengers ist voll. Es kommt aber eine weitere Nachricht an. Die älteste (erste) Nachricht im Array soll gelöscht werden, sodass ein Platz für die neue Nachricht frei wird. Dabei soll die Reihenfolge der Nachrichten erhalten beleiben.

Aufgaben

  • Beschreibe eine Möglichkeit wie das umgesetzt werden könnte.
  • Erprobe deine Idee an diesem Objektdiagramm, indem du die "incomingMessage" in das Array messages entsprechen der Anforderungen (siehe oben) einfügst.

Sobald ein Objekt nicht mehr referenziert wird, ist dieses nicht mehr addressierbar und wird vom Gargabecollector eingesammelt.

Speicherplatz erweitern

Das Array messages soll nun mitwachsen. Das heißt, dass wenn das Array keinen freien Platz mehr zur Verfügung hat, soll ein neues Array mit der doppelten Anzahl an Plätzen erzeugt werden. Die alten Nachrichten sollen jedoch erhalten bleiben.

Aufgaben

  • Erzeuge im Objektdiagramm ein neues Array, indem du das "new Array" auf die gepunkte Fläche ziehst. Gib dem Array einen Namen und die entsprechende Größe.
  • Manipuliere das Objektdiagramm, sodass die Anforderungen erfüllt sind.
  • Beurteile, inwiefern du die Strategie geeignet hälst.
  • Ein Teammitglied schläg vor lieber die Formel: nâ‹…32+1n \cdot \frac{3}{2} +1 (wobei n die vorherige Größe ist) zu verwenden. Er meint, dass das effizienter wäre. Beurteile seine Aussage.