Fasada i nadmiernie rozbudowany interfejs.

0

Witajcie.
Ostatnio siedzę nad projektem, w którym fasada ma >200 funkcji. Co prawda są dobrze ponazywane, jednak chcę spróbować coś z tym zrobić. W projekcie można w zasadzie wyróżnić 5-6 podgrup i chciałbym na nich oprzeć swój podział, czyli np.
fasadaGlowna.fasadaGrupa1.funkcjaGrupy1();
itd.
Dobrze do tego podchodzę, czy może inaczej powinienem to podzielić? Jest jakaś optymalna ilość funkcji co by nie czuć się przytłoczonym przez interfejs? Co poradzicie?

0

Trudno Ci cokolwiek powiedziec. Podajesz zbyt malo szczegolow. Co do takich wywolan naruszasz zasade projektowania, co do "ograniczania interakcji" ktora brzmi Rozmawiaj tylko z najblizszymi przyjaciolmi. O co chodzi a no to to ze lepiej na tym wyjdziesz jesli stworzys sobie adaptery w fasadzie glownej i tak np otrzymalbys

FasadaGlowna.funkcjaGrupy1(); lub inna nazwa dowolna zdefiniowana przez Ciebie, ktora za pomoca adaptera (ktory defakto umieszczony bylby w Fasadzie glownej jako jej skladnik, ktory musi miec zapewnione istnienie w czasie wywolania... chyba i tak mnie zrozumiesz :)) wywoluje funkcjeGrupy1()

Edit. Co do ilosci funkcji nie ma czegos takiego... Ale jesli na jakies dzialanie sklada sie kilka akcji np. funkcja1Grupy1, funkcja2Grupy1 oraz funkcja4Grupy2 to mozesz to nazwac jakos w Fasadzie glownej np RealizacjaCzegos1 na co sklada sie wykonanie wszystkich funkcji grup, ktore wywolywane sa za pomoca adapterow.

0

Dzięki za odpowiedź.
Ok, to może więcej szczegółów podam. Projekt to forum internetowe. Fasada ukrywa opcje sesji, bazy danych i walidacji danych. W fasadzie znajdują się wszystkie opcje które mogą dotyczyć takiego forum - logowanie i dodawanie użytkowników, przydzielanie ich do grup, usuwanie, wysyłanie maili, tworzenie i zarządzanie postami, tematami, kategoriami, wszystkie opcje moderacyjne i administratorskie. Myślałem, żeby to jakoś pogrupować - np. do jednego wora to co tyczy się użytkowników, do drugiego postów, tematów itd. Drugim pomysłem był podział ze względu uprawnienia(czyli niezalogowany, zalogowany, moderator, admin). Ten drugi podział jednak odpada ze względu na to, że danej grupie można przydzielać różne uprawniania(niezalogowany może pisać posty lub nie - w zależności od ustawień). Jest o tyle dobrze, że nie trzeba wywoływać kilku funkcji by wykonać jakąś czynność - zalogowanie - przesyłamy pobrany nick i mail i już jesteśmy. Post - podajemy temat itd. - i już dodany.
Skoro faktycznie "rozmawiać tylko z najbliższym przyjacielem" - ok to mój sposób wydaje się błędny - ale jak inaczej to ugryźć?
Mam nadzieję, że trochę przybliżyłem problem.
Pozdrawiam.

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