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?