2016-04-18 5 views
0

Mit einem Freund von mir streiten wir uns über den MVC (Model View Controller) Design Pattern. Wir arbeiten an einem Projekt, bei dem zwei unserer Controller voneinander abhängig sind:MVC Interdependent Controller: Wer darf was speichern?

Wir manipulieren zwei Arten von Objekten: Muster und Layout. Ein Layout ist eine Komposition von Patterns, was bedeutet, dass ein Layout im Model einen std :: Vektor von Patterns hat. Wenn wir ein Muster erstellen möchten, müssen wir vorher ein Layout erstellt haben, da ein Muster nicht existieren kann, ohne in einem Layout zu sein.

Das Wissen, dass wir die Controller für diese beiden Arten von Daten implementieren möchten und streiten darüber, wer die Musterdaten zu speichern erhält.

Von meinem Freund Sicht, als das Muster kann nicht ohne ein Layout existiert können wir den Layout-Controller die Ladung von die Musterdaten im Layout-Modell speichern lassen.

Aus meiner Sicht, wie wir über Pattern-Daten sprechen, würde ich es vorziehen, l und der Pattern-Controller behandeln alles Muster bezogene. Der Muster-Controller würde also einen Container mit Mustern und den Layout-Controller eine Liste von Zeigern zu den im Layout vorhandenen Mustern enthalten.

Der Vorteil der Technik meines Freundes ist, dass wir die Daten nicht an zwei Stellen haben (Pattern Controller Container und Layoutdaten) und der Vorteil von mir ist, dass die Rollen der einzelnen Controller nicht gemischt sind und wir manipulieren können Muster ohne zu wissen, zu welchem ​​Layout es gehört. Was denken Sie ?

+1

Ich denke, diese Art von Frage ist besser geeignet für [Programmierer] (http://programmers.stackexchange.com/). –

+1

@HenriqueBarcelos beim Verweis auf andere Websites, ist es oft hilfreich zu zeigen, dass [Cross-Posting ist verpönt] ( – gnat

+0

) Ja, sicher. Ich habe diese Mode, dies so offensichtlich zu sehen, dass es nicht neu formuliert werden muss. –

Antwort

1

Wenn es nur zum Speichern des Musters im Layout ist, ist es aus meiner Sicht immer noch mit dem Layout verwandt. Das Layout weiß, dass er eine Musterliste hat. Er weiß, wie man sie speichert, wie man den tatsächlichen Vektor steuert.

Das Muster sollte nicht aus meiner Sicht wissen, dass er in einer Liste über ihm ist. Das würde die Kopplung reduzieren. Der Pattern-Controller weiß, wie er mit einem Pattern umgehen soll. Das ist es.

So weiß der LayoutController wie mit einem Layout zu arbeiten, und fügen Sie Muster in der Liste, die im Layout befindet

Der PatternController weiß, wie man mit einem Muster zu arbeiten, ohne zu wissen, wo es über ihm gespeichert ist.