W teorii dzielić tak by klasy w pakecie używały się często nawzajem i rzadko używały klasy z innych pakietów.
Inna porada to ,że trzeba dzielić tak by uwzględniać, że zmiana 1 klasy pociąga za sobą "release" całego pakietu.
Czytałem też o podejściu strukturalnym do pakietowania i funkcjonalnym i że to drugie podobno lepsze.
No to teraz praktyka:
Załóżmy, że mam robota internetowego, który śledzi 2 fora naraz. Wyszukuje w nich posty w których ktoś pisze o R
i zlicza pozytywne określenia i negatywne i wypluwa stosunek pozytywnych do negatywnych. Załóżmy, że mam klasy takie o (obok napisane co robią):
*Site*
- klasa abstrakcyjna, przechowuje stornę główną, taki nawigator dla tematów na forum, zwraca wątki tematów ze słowem R
Site4programmers
- dziedziczy po Site, działa na naszym forum
SiteCodercity
- dziedziczy po Site, działa na forum codercity
*Topic*
- klasa abstrakcyjna, przechowuje wątek z forum, zwraca stronę ze słowem R z wątku którym jest
Topic4programmers
- dziedziczy po Topic, działa na naszym forum
TopicCodercity
- dziedziczy po Topic, dziala na forum codercity
*Page*
- klasa abstrakcyjna, przechowuje stronę wątku, zwraca posty ze słowem R ze strony , którą jest
Page4programmers
- dziedziczy po Page, działa na naszym forum
PageCodercity
- dziedziczy po Page, dziala na forum codercity
*Post*
- klasa abstrakcyjna, post strony, zwraca zawartość postów
Post4programmers
- dziedziczy po Post, działa na naszym forum
PostCodercity
- dziedziczy po Post, dziala na forum codercity
Counter
- interfejs do zliczania dobrych/zlych przymiotników
CounterBad
- implementuje Counter, zlicza złe przymiotniki o R
CounterGood
- implementuje Counter, zlicza dobre przymiotniki o R
AppMain
- metoda główna, która używając tyhc klas robi analizę i wyswietla wynik
czyli, żeby AppMain przeprowadził analizę potrzebuję po kolei stworzyć sobie Site
, który zwróci wiele Topic
, z których każdy zwróci wiele Page
i każdy Page zwróci wiele Post
, a z każdego postu zawartość na której zapuści się algorytm z Counter
.
Jak to teraz podzielić na pakiety? 4pgorammers do 1 pakietu, a codercity do 2, a czesci wspolne do 3?
A może strony ze stronami, posty z postami itd... A może wszystko razem tylko końcową analizę do osobnego pakietu?