Article View: pl.comp.objects
Article #13670Bajka o żołnierzu, krawcach i frędzlach, czyli dylematy związane z łączeniem wzorca Pattern z ideą MVC (model-view-controler)
From: Filip Sielimowicz
Date: Wed, 30 Nov 2005 20:31
Date: Wed, 30 Nov 2005 20:31
135 lines
8063 bytes
8063 bytes
Pewien generał był bardzo zajęty tworzeniem nowoczesnej armii. Generał ten genialny szeroką miał wizję a i w szczegółach był mocarz jakich mało. Ale nade wszystko brał bardzo poważnie względy ekonomiczne ... I policzył sobie: jeśli moja armia ma się składać z tysięcy żołnierzy, nad którymi ktoś potem będzie musiał zapanować... Myśl była prosta: żeby żołnierza okiełznać, trza go wpasować. Trza wyznaczyć jakiś wzór żołnierza i pracować nad tym, by w czasie szkolenia żołnierz przynajmniej przypominał wyznaczony model, a generał będzie sobie na planszy przestawiał statystycznie się zachowujace grupki modeli, nie musząc się zastanawiać nad tym, że jeden z nich musi siusiu raz na 1h. Jak żołnierz stoi w szeregu, to ma w ten szereg pasować. Ma wiedzieć, kto go z jednej bodzie kolbą i ma wiedzieć, kogo sam bodzie kolbą z drugiej. Ma wiedzieć, kto mu depcze po piętach i bez żenady deptać po piętach temu, co przed nim. Żołnież ma być twardy: ma mieć twardą kolbę i twarde pięty, coby żaden ścisk nie był mu straszny. I ma mieć woreczek schowany, jeśli już naprawdę musi co 1h. Postawił wiec sobie generał zadanie nakreślenia modelu. W czasie kreślenia szybko okazało się, że różne VIP'y zupełnie inaczej rozumieją pojęcie żołnierza. Niektórzy myśleli, że to taki koleś, co idzie wystrojony po ulicy i wali w bęben albo kręci kijem trzymanym w jednej ręką ręce. Najważniejsze było, by miał fajną czapkę z jaskrawymi frędzlami i nimi mocno potrząsał. Trudno więc było jeden model stworzyć, ale generał bardzo gęsto czytał branżową literaturę i tam dowiedział się, że istnieje coś takiego, jak Model-View-Controler. Generał szybko sobie sprawę uprościł i wyszło mu, że aby jeszcze bardziej sobie uprościć, powinien projektować oddzielnie wygląd zewnętrzny żołnierza, a oddzielnie jego zachowanie i zawartość plecaka. Dzięki temu to mógł bez ostrzeżenia wchodzić w środku nocy do namiotu, zrywać żołnierza na baczność a potem wypychać na dwór - choćby i nago - i ćwiczyć jego inteligencję, tudzież muskuły w świetle księżyca, w którym to i tak znaczenia żadnego nie miało, czy to kolba zmęczonemu żołnierzowi tak luźno dynda, czy ... W każdym bądź razie krawcy szyjący na żołnierza wdzianko nie musieli niewyspanego w dzień wypożyczać i męczyć w przymierzalni. A zdarzało się onegdaj często i gęsto, że tacy krawcy to pierwsze co zabierali się do poprawiania plecaka, przyszywania na trwałe wyposażenia, coby nie latało luźno, doszywania przegródek na przybory krawieckie... Zdarzało się nawet, że z pomocą nożyczek, igły i nitki "poprawiali muskulaturę" lub nawet, o zgrozo, próbowali zaszywać braki w inteligencji żołnierza ! Absurd - każdy pomyśli, ale to parszywi krawcy lubili właśnie najbardziej - grzebać igłą tam, gdzie nie powinni. Było to tym bardziej ważne, że generała generalnie szlag trafiał, kiedy pojawiali się krawcy od prezydenta i chcieli wypożyczać jego chłopców na czas szycia fatałaszków na paradę z okazji, dajmy na to, dnia dziecka - bo prezydent miał właśnie dziecko, więc parada prezydencka musiała być. Udało się więc generałowi zrzucić z siebie ciężar wiecznego patrzenia krawcom na ręce - dostali kamienny model z wyrzeźbioną docelową muskulaturą, wrzeźbionym plecakiem i ograniczony przydział nożyczek i igieł - coby uważali, by ich darmo nie tępić. Trudno było ten model zmusić, by trząsł czapką z frędzlami, ale ... Szybko okazało się też że żołnierz żołnierzowi nierówny - jeden mały jest i nic prawie nie znaczy, właściwie to ładuje tylko i strzela w przód. Inny zaś żołnierz to się okazuje musi być parszywym potworem i w dodatku inteligentnym, bo mu na barki wrzucają samodzielne duże zadania także organizacyjne. Z tym ostatnim rodzajem żołnierza to nasz generał miał znów mnóstwo kłopotu. Ciężko było takiego wyszkolić, bo problem był już z samymi podręcznikami. Ale literatura branżowa pełna wzniosłych myśli i idei podpowiedziała: wzorzec Strategy. Czyli: rozpisać docelowe środowisko działania żołnierza na wiele kilka sytuacji, w każdej z nich stworzyć kompletny profil i stworzyć kompleksowe szkolenie. Potem żołnierza wyszkolić, w każdym z tych profili niezależnie i nauczyć, jak ma się sprawnie przełaczać między swoimi osobowościami (psychiatrzy odwalili kawał dobrej roboty ...). Wszystko było dość ładnie i pięknie, ale generał stanął przed pewnym dylematem. A mianowicie żołnierz działajacy wg. wielu strategii często potrzebował na każdą z nich inne wdzianko. Zazwyczaj też potrzebował inny plecak. Ba - nawet poszczególne elementy wyposażenia plecaka miewały warianty. I tu się generał nieco zafrasował, bo zaczęło wyglądać na to, że będzie musiał pisać także podręczniki strategii dla krawców ... Dużo bardziej ponętna wydawała mu się myśl, że krawcy uszyją ubiór inteligentny, który sam będzie badał zawartość plecaka i się dostosowywał. Ba - już w głowie generała zaświtała myśl, że w plecaku będzie takie inteligentne urządzenie, które będzie potrafiło na podstawie informacji o aktualnej osobowości żołnierza określić, które części garderoby mają być "aktywne", jaki mają mieć wariant kolorystyczny itp. A do krawca będzie należało uszyć wdzianko z elementów, które te informacje będą potrafiły odczytać i się dostosowywać ... No i zadumał się generał ... Bo sobie pomyślał: to urządzonko i komponenty będzie musiało chyba być inteligentniejsze nawet niż krawcy, żołnierze i nawet ja - wszyscy razem wzięci. Kto mi to sfinansuje ? Może prezydent zrobi prezent z okazji dnia dziecka ... Trza się dobrze przyłożyć do tych frędzli w takim razie ... ... A na koniec pytanie do szerokiego grona: czy takze spotkaliście się z dylematem generała, czyli pojawił się problem dwóch niezależnych podziałów komponentów systemu - jeden podług architektury - MVC, drugi podług funkcjonalności (np. złożona formatka a za nią złożona logika biznesowa obsługująca wiele wariantów "czegoś", co pierwotnie wydawało się dużo mniejsze), które powodują, że komponenty zaczynają się bardzo mnożyć: każda nowa strategia jest rozszczepiana przez podział architektoniczny i z teoretycznie jednego nowego elementu tworzy się ich od razu kilka ? Problem ten jest powiedzmy do udźwignięcia, dopóki nowymi elementami w systemie są nowe oddzielne formatki (my to nazywamy interakcje), natomiast zaczyna być to już mocno kłopotliwe, kiedy w ramach jednej interakcji-formatki pojawia się wiele strategii.
Technical Details
Message-ID:
<dml264$286$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!newsfeed.silweb.pl!news.onet.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!newsfeed.silweb.pl!news.onet.pl!not-for-mail From: "Filip Sielimowicz" <sielim@poczta.onet.pl> Newsgroups: pl.comp.objects Subject: Bajka o żołnierzu, krawcach i frędzlach, czyli dylematy związane z łączeniem wzorca Pattern z ideą MVC (model-view-controler) Date: Wed, 30 Nov 2005 21:31:01 +0100 Organization: Onet.pl Lines: 136 Message-ID: <dml264$286$1@news.onet.pl> NNTP-Posting-Host: host-217-172-233-228.gdynia.mm.pl Mime-Version: 1.0 X-Trace: news.onet.pl 1133382662 2310 217.172.233.228 (30 Nov 2005 20:31:02 GMT) X-Complaints-To: usenet@news.onet.pl NNTP-Posting-Date: Wed, 30 Nov 2005 20:31:02 +0000 (UTC) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 X-Sender: HWuT3ZQ16+B3O4dnsZlCZgocIOkeW3FM X-Newsreader: Microsoft Outlook Express 6.00.2900.2180 X-Priority: 3 X-MSMail-Priority: Normal Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit