2010-02-10 14 views
8

Jako programista PHP/Web jestem ogromnym fanem MVC (Model-View-Controller). Uwielbiam budować aplikację na solidnym fundamencie, który zdecydowanie oddziela logikę biznesową, logikę prezentacji i przepływ kontroli.Wzór projektu dla przetwarzania danych? (Alternatywa MVC)

Jednak pracuję również nad aplikacjami po stronie serwera, które przetwarzają tylko dane i logują proces oraz wszelkie istotne wyniki (takie jak skrypty importu, skrypty migracji danych, usługi sieciowe, serwery gniazd TCP itp.). W takich przypadkach nie ma potrzeby stosowania wielkiej fantazyjnej architektury MVC.

Zdaję sobie sprawę, że MVC można nadal tutaj zastosować, ale wydaje się, że jest to przesada. Poza surowym podejściem proceduralnym lub przypadkowym łączeniem obiektów klasy, czy istnieją konkretne Wzorce Projektowania Architektonicznego, które są specjalnie dostosowane do aplikacji przetwarzania danych, uruchamiania i demona serwera?

+0

http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science) może być pomocna. – Amber

+0

d podałeś nieumarły link ... – Amirshk

+0

Zamiast tego spróbuj http://en.wikipedia.org/wiki/Architectural_pattern_%28computer_science%29. Linki do Wikipedii zawierają nawiasy, które siać spustoszenie w SO i wiele innych rzeczy, więc powinny być URI zakodowane jako% 28 i% 29. –

Odpowiedz

1

Jeśli dobrze rozumiem, aplikacje, o których mówisz, nie mają interfejsu użytkownika poza linią poleceń powłoki. Jeśli tak jest, nadal możesz używać MVC na poziomie architektury oprogramowania - twój widok będzie po prostu trywialny. Twój kontroler będzie podobnie trywialny, ponieważ istnieje bardzo niewiele akcji do propagacji pomiędzy modelem a widokiem.

Oczywiście, przy banalnym widoku i kontroleru, równie dobrze może nie być żadnego wzorca. Nie widzę z tym problemu (na poziomie, o którym mówisz). Kluczem jest przyjęcie podejścia opartego na interfejsie (podobnie jak w przypadku MVC), co w końcu da lepszy projekt; taki, który można łatwo dostosować do innego interfejsu użytkownika lub sposobu wywoływania, jeśli jest to wymagane w przyszłości.

+0

Dzięki Steven, to świetna rada. –

+0

W szczególności dobrze trafiłeś na temat zakresu, w którym MVC jest wysoce adaptowalny. –

+0

Przy okazji - czy miałbyś jakieś konkretne przemyślenia na temat wdrażania "podejścia opartego na interfejsie", jak sugerujesz, zakładając, że chciałem uniknąć cienkiego projektu MVC, ale chciałem uporządkować mój czysto-proceduralny kod nieco lepiej ? –

1

Chyba trzeba zacząć, zadając sobie pytanie, co jest problem chcesz rozwiązać (z tych wzorców, których szukasz)

Gdy wiesz, to może się okazać, coś pożytecznego tutaj:

http://martinfowler.com/eaaCatalog/

1

Ponieważ jest to związane z przetwarzaniem danych, zakładam, że masz jakiś magazyn danych, możesz spojrzeć na schematy architektoniczne Repozytorium i DTO (Obiekt przenoszenia danych).

Bardziej ogólnie, niektóre z wzorców projektowych w katalogu GOF będzie również odpowiadał ci takich jak Singleton dla run-raz, elewacji do abstrahowania logikę przetwarzania, strategii dla różnych logiki przetwarzania, State Maszyna może dla demona