2011-08-17 20 views
13

Próbuję uzyskać MVC w moim projekcie wiersza poleceń.MVC w linii poleceń java

Jak teraz (nie MVC, oczywiście) mam:

  • MainClass (fałszywe nazwisko oczywiście), A próg pomocą menu kilka razy tworzy obiekt systemu
  • Menu (wykorzystywanych przez główny do przedstawienia opcji)
  • System, ma Model jako atrybut, utworzony za pomocą pliku lub klawiatury, wykorzystuje dane z Modelu do wykonania prostej operacji .calculate (wartośćA, wartośćB) gdzie wartośćA i wartośćB są wybierane przy użyciu Menu z pola atrybutów Modelu (kinowego) d) jest kontenerem danych, które mam.

Czy ktoś może zaproponować mi odpowiednią strukturę zajęć?

Dzięki dużo, Luke

+0

Co masz na myśli? Jaka jest biblioteka klas MVC? Jaki rodzaj interfejsu użytkownika? – bmargulies

+0

Mam na myśli wzór ModelViewController –

+0

@Luke, który jest albo wzorcem projektu, albo pseudonimem dla istniejącej biblioteki. Jeśli to drugie, jaka biblioteka? Jeśli ta pierwsza, twoje pytanie jest bezsensowne. –

Odpowiedz

14

Jestem naprawdę zaskoczony negatywnymi reakcjami na to pytanie, ponieważ jest to dość interesująca. Spodziewam się, że tak jest, ponieważ większość ludzi zakłada, że ​​MVC ma tylko jakieś znaczenie w środowisku sieciowym, ale MVC ma również zastosowanie do programu CLI. Po prostu prezentuje inny nośnik widoku. W rzeczywistości uznałbym to za znakomity projekt MVC, który był w stanie podłączyć interfejs CLI, GUI lub widok sieciowy bez żadnych zmian w kontrolerze i modelach.

Wszystko, co mówi MVC, to, że biorąc pod uwagę aplikację, w miarę możliwości streszczasz część widoku - prezentację aplikacji, co użytkownicy widzą i wchodzą w interakcje - z prawdziwej, wewnętrznej logiki aplikacji. Sposób, w jaki to robisz, polega na tworzeniu kontrolerów, które "przyklejają" widok i jakiekolwiek elementy sterujące istnieją w nim do logiki na końcu. Mówiąc prościej, kontrolery tłumaczą dane wejściowe użytkownika na wywołania metod i tłumaczą zwracane wartości z powrotem na rzeczy przydatne dla użytkownika. Modelowa część wzoru jest nieco dyskutowana. Niektórzy twierdzą, że każdy, oddzielny kawałek wykresu obiektu, który jest wysyłany do widoku w celu wyświetlenia, to "model". Inni utrzymują, że cały wykres obiektów stanu, który żyje w tylnym końcu, to "model", a kontrolery tworzą coś z wyglądającego szkła, które pozwala widokowi wybierać, kontrolować i modyfikować określone fragmenty modelu. Pytanie brzmi, czy istnieje wiele modeli ciągle przepływających tam iz powrotem lub jeden, duży model, który musi być ujawniony w sposób, który użytkownik może zrozumieć.

Aby dostać się do MVC w CLI - lub dowolnej aplikacji - należy podać fragment kodu, który jest wyraźnie zdefiniowany jako widok/prezentacja. Nigdy nie powinien mieć w sobie niczego nawet przypominającego logikę biznesową. Twoje kontrolery powinny być obiektami, które wiedzą, jak reagować na dane wejściowe użytkownika i mogą wysyłać rzeczy do oglądania, ale bez żadnych założeń dotyczących tego, jak te rzeczy będą wyświetlane lub jakie będą dokładnie wprowadzane dane wejściowe. Model, w taki czy inny sposób, jest w zasadzie faktycznymi danymi lub "rzeczami", którymi dbający użytkownik, i powinien być nieświadomy widoku, które go pokazuje, lub kontrolera, który ... um ... kontroluje to.