Struktura Pakietów - styl kodowania`

0

Hej
Czy mógłby mnie ktoś odesłać do jakichś źródeł na temat dobrego stylu kodowania w Javie. Chodzi mi o rozmieszczenie klas w pakietach (gdzie wrzucać klasy odpowiedzialne za indeks, jak hierarchizować pakiety, aby były jakoś logicznie poukładanie).

Dziękuję serdecznie za pomoc

Pozdrawiam
Michał

0

http://4programmers.net/Forum/376377
http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

Do tego przyjęcie jakiejś swojej konwencji i trzymanie się jej :)
Zazwyczaj masz tak:
app - tu Main i główne klasy
app.utils/tools - narzędzia
app.model - model
app.exceptions - klasy błędów
app.controller - kontrolery
app.view - klasy związane z prezentacją
app.test - testy JUnitowe
dodatkowo jeżeli korzystasz z komunikacji:
app.com - komunikacja
app.server - część serwerowa, interfejsy itp
app.client - część kliencka, interfejsy zdalne, stuby itp.

0

zalezy jak programujesz. Jak powiedzial przedmowca - stosuj sie do konsekwentych zasad. Klasy trawalosci w model. Widok w view, implementacja w impl, wszystko w odwrotnej nazwie twojej domeny. Inaczej sie rozmieszcza webserwisy, inaczej standalone. Inaczej duze projekty ,inaczej male. Zalezy czy kozystasz z wzorcow projektowych ,czy wszystko na szybko. Kazdy pakiet ma stanowic jakas odrebna calosc logiczna. Nauczysz sie z czasem ;]

0

ok dzięki wielkie!

Właśnie o taką odpowiedź mi chodziło.

Pozdrawiam serdecznie

0

Mam jeszcze pytanie dotyczące widoku i kontrollera.

O ile dobrze zrozumiałem w widoku trzymam np klasę typu JFrame (główne okienko).

W tej klasie mam metodę setMenu(), która zatroszczy się o stworzenie menu.

I teraz kilka pytań:

  1. Czy tworzenie wszystkich elementów menu ma znajować się w jednej metodzie (przy rozbudowanym menu, podobnym do tego z eclipse wydaje mi się to zagmatwane).
  2. Gdzie przetrzymywać Listenery (do konkretnych elementów menu - np ""plik->nowy", "plik->otworz"). Wydaje mi się, że w katalogu controllers, lecz nie wiem, czy :
  • w jednej klasie o nazwie np "MenuListener" która rozpoznaje kliknięty element?
  • jak przekazywać obiekt głównego okna (czy po prostu wrzucić w konstruktor, czy może z głównego okna zrobić Singleton?).
  1. I (to nawiązanie do drugiej kreski pytania drugiego) jak w ogóle zarządzać słuchaczami. Jest ich w programie zwykle bardzo dużo i nie bardzo wiem jak to ładnie rozplanować.

Dziękuję z góry wszystkim za odpowiedzi na te nurtujące mnie pytania :)

0
Michał Borek napisał(a)

Mam jeszcze pytanie dotyczące widoku i kontrollera.

O ile dobrze zrozumiałem w widoku trzymam np klasę typu JFrame (główne okienko).

W tej klasie mam metodę setMenu(), która zatroszczy się o stworzenie menu.

I teraz kilka pytań:

  1. Czy tworzenie wszystkich elementów menu ma znajować się w jednej metodzie (przy rozbudowanym menu, podobnym do tego z eclipse wydaje mi się to zagmatwane).
  2. Gdzie przetrzymywać Listenery (do konkretnych elementów menu - np ""plik->nowy", "plik->otworz"). Wydaje mi się, że w katalogu controllers, lecz nie wiem, czy :
  • w jednej klasie o nazwie np "MenuListener" która rozpoznaje kliknięty element?
  • jak przekazywać obiekt głównego okna (czy po prostu wrzucić w konstruktor, czy może z głównego okna zrobić Singleton?).
  1. I (to nawiązanie do drugiej kreski pytania drugiego) jak w ogóle zarządzać słuchaczami. Jest ich w programie zwykle bardzo dużo i nie bardzo wiem jak to ładnie rozplanować.

Dziękuję z góry wszystkim za odpowiedzi na te nurtujące mnie pytania :)

  1. mozesz zaczytywac z pliku albo napisac wlasny parser....ale sadze ze az tak skomplikowane to nie jest wiec polecam w konstruktorze contenera
    2)w klasie zarzadzajacej menu (na przyklad MainFrame)....generalnie w jakims managerze odpowiedzialnym za mechanike menu
    3)sluchacz to interfejs albo jakas klasa abstrakcyjna (mozna to tez tak rozwiazac), a wiec kazdy listener powinien byc podpiety do obiektu ktory nasluchuje....bzdura bylo by robil "ladny layout kodu" i klase ktora bedzie implementowala gazylion listenerow tylko po to zeby byly w 1 miejscu....implementuj listener w klasie ktora tego potrzebuje. np menu - implementuje actionListener bo to ta klasa zarzadza tym co sie dzieje w menu, glowny Canvas implementuje mouseListener bo to dla niego jest wazne gdzie jest myszka zeby cos narysowac i ja podazalem zawsze ta droga...
0

a czy jest jakiś dobry framework do aplikacji desktopowych ? Do webowych znajduję springa, strutsa, cocoona, a nie mogę znaleźć dobrego frameworka do aplikacji desktopowej.

Wiem, że drążę temat, ale chciałbym na wstępie uniknąć kardynalnych błędów programistycznych :>

1 użytkowników online, w tym zalogowanych: 0, gości: 1