JAVA Graphische Benutzeroberflächen - Frage zu MVC

Hallo,
ich habe eine kurze Frage zum Entwurfsmuster Model View Controller.
Graphische Benutzeroberflächen in JAVA z.B. (mit Swing, oder AWT) sind ja oft nach dem MVC-Entwurfsmuster aufgebaut.

Jetzt habe ich vom Prinzip her folgende Anwendung:
Eine GBO (Hauptprogramm) mit einem JPanel.
Auf den JPanel soll etwas gezeichnet werden, sobald ich mit der Maus drauf klicke (irrelevant, was gezeichnet wird).
Jedenfalls habe ich mir deshalb eine View gebastelt, die von JPanel abgeleitet worden ist, damit ich die Methode paintComponent(Graphics g) sowie repaint() verwenden kann.
Es gibt einen Controller der das Interface MouseListener implementiert, um auf die Klicks reagieren zu können.
Dann gibt es ein Model, das das was gezeichnet werden soll, repräsentiert (als Beispiel nehm ich jetzt einfach mal einen Punkt).
Das Model-Objekt wird sowohl der View als auch dem Controller als Referenz übergeben, um auf die Public-Methoden des Models zugreifen zu können.
Meine GBO soll aber leisten können, dass falls ich noch woanders hinklicke, dass dass was schon gezeichnet wurde nicht verlorengeht, sondern was neues hinzukommt. Das realisiere ich, indem ich im Model eine private ArrayList vom Typ (Zeichnungsobjekt sei eine weitere Klasse, die zum Model gehört) anlege und immer wenn ich klicke auf die View, der Controller für die Mouse diese ArrayList erweitert um das jeweilige neue Zeichnungsobjekt.

Um das gezeichnete auch sichtbar zu machen, benötige ich ja einen repaint()-Aufruf in meiner View().
Jetzt habe ich ja folgende Möglichkeiten: 1) Im Model eine Methode „zeichneAlle(Graphics g)“ implementieren, in der die einzelnen Objekte der ArrayList durchlaufen werden und jeweils das entsprechende Objekt zeichen z.B. mit g.fillOval(…).
2) Möglichkeit: Ich halte die ArrayList im Model als public anstatt private und greife aus der View heraus direkt auf diese ArrayList zu. Dann könnte ich innerhalb der View eine Methode „zeichneAlle(g)“ implementieren.

Was wäre eigentlich die bessere Lösung? Ich vermute mal 1), einfach, um den public-Zugriff auf die ArrayList zu verhindern.

Mit freundlichen Grüßen
Ralf

ich würde die ArrayList in dem View abspeichern und dem Controller per putter-Methode die Möglichkeit geben, die ArrayList zu erweitern