-
Anonim
Witam
Tak wiem, nie ma czegoś takiego w javie i w tym problem :)
Powiedzmy, że chcemy aby program mial kilka mutacji (typu lite, pro). Jakbyście rozwiązali ten problem?
1. Oddzielne klasy, które podmieniamy, przed kompilacją;
2. Jeszcze jedna klasa ze zmiennymi statycznymi finalnymi i rozbudowa klas właściwych o if..else ew. switch
3. A może jeszcze inaczej
Ad. 1
Dość kłopotliwe, gdy modyfikacji ulegają wspólne części klas
Ad. 2
Komplikuje kod źródłowy i pogarsza jego czytelność.
Właśnie się zastanawiam nad wyborem, którejś z opcji. Dlatego proponuję rozpoczęcie dyskusji nt. teoretycznych rozważań która (opcja) do jakich rozwiązań i dlaczego.
Pozdrawiam -
Anonim
-
Brut[all]
Heh.. fajnie mi się czyta ten Twój post, bo ledwie 3 tyg. temu zakładałem dokładnie ten sam temat i pisałem niemalże to samo, co Ty :P
Tłumaczyłem się z nazwy tematu, bo "tak, wiem, że dyrektywy takie nie istnieją", pisałem o niewygodach rozwiązania 1. i 2., ale to jedynie jako wstęp bo cały ogień skierowałem na moją własną opcję 3. :)
Aha.. dodam od razu, że mój problem, przeciwnie do prośby z Twojego drugiego postu, nie dotyczył wcale Javy, a PHP, ale to nic a nic nie zmienia - problem jest dokładnie ten sam, a technikaliów jezykowych w tekście za dużo nie ma, więc powinieneś sobie poradzić.
Jeśli jesteś wytrwały i masz dużo czasu, bo jestem bardzo "wylewny", możesz sobie poczytać tutaj:
http://g2.grono.net/forum/topic/616...
Pomysł się ogólnie nie spodobał tym bardziej doświadczonym, ale jakoś nie potrafię z niego zrezygnować i chyba i tak zacznę stosować :) -
spec
w javie to bym postawil na odzielne klasy.
i ladowanie ich moze w runtimie. -
-
Maciek Makowski
A dlaczego nie skorzystac z preprocesora? To, ze nie ma go w Sunowskim SDK nie oznacza, ze nie ma go w ogole:
http://www.vortoj.com/sjpp/readme.h...
http://jappo.opensourcefinland.org/
-
*Kamil*
Rozwiazanie "ładne":
Mozesz tez rozejrzec sie za wzorcami projektowymi, wzorzec strategi, wzorce fabryk, wzorzec mostu tez by pasowal do rozwiazania tego problemu, moze nawet wzorzec dekoratora. Wszystkie w jakis sposob umozliwiaja podmiane algorytmow czy wybor klasy nadrzednej tworzonego obiektu, dobre rozwiazanie zalerzy od twojego problemu, popatrz sobie w necie co robia odpowiednie wzorce i dopasuj je do siebie.
Rozwiazanie "na szybko":
Jezeli te kilka mutacji to tak naprawde jedna funkcja w kodzie (u mnie to bylo tak ze wesja demo mogla miec max 5 poziomow wiec roznica jest tylko w funkcji wczytujacej level) to w zupelnosci wystarczy jedna dodatkowa zmienna typu isDemo. -
Anonim
Dzięki za odpowiedzi.
Deth: W obecny momencie wykorzystywana jest metoda ,,na szybko'', ale jak program przekroczył 60tys. linii kodu do kompilowania, a klas zamiennych jest ponad 20, do tego program ma 4 mutacje (a będzie więcej), to robi to się zbyt uciążliwe. Poczytam sobie o wzorcach :)
Brutal: Na początku myślałem, że przeoczyłem jakiegoś postach na tym forum :). Dzieki za linka, kiedy z PHP też miałem doczynienia, więc sobie poradze :)
Pozdrawiam -
Anonim
-
Anonim
-
konyo
-
konyo
-
konyo
moze opracuj sobie mechanizm licencji i na jej podstawie określaj wersję i używany kod? fabryczki i te sprawy to chyba dobry pomysł, w aplikacji
korzystaj jedynie z interfejsów, zrób sobie abstrakty i zaimplementuj odpowiednio dla każdej licencji itp jeśli aplikacja ma 60 tyś linii, a jeszcze tego nie zrobiłeś to każdy moment jest dobry aby zacząć naprawiać sytuację, bo potem będzie jeszcze gorzej (to w zasadzie często spotykana sytuacja, ktoś uczy się pisząc - to normalne, ale jesli w pewnym momencie nie zacznie przeprojektowywać i przepisywać aplikacji tak by jej utrzymanie było proste i przyjemne to łolaboga) -
konyo
aha no i warstwy aplikacji, są rozróżnialne? - w zdrowej sytuacji powinny być -
Anonim
Interfejsy, abstracty, fabryki itp wykorzystywałem narazie tylko do komponentów, których używałem w różnych sytuacjach. Teraz gdy kod przytył i jeszcze doszły różne mutacje, to... musze zrobić to również z większymi elementami.
,,to w zasadzie często spotykana sytuacja, ktoś uczy się pisząc'' - a raczej człowiek uczy się całe życie :). A i owszem pierwszy mój tak duży projekt.
Tak warstwy są rozróżnialne. -
konyo
w takim razie może nie jest tak źle, usiądź spokojnie, poczytaj o wzorcach i przemyśl architekturę całej aplikacji na nieco wyższym poziomie :) może zainteresuj się spring-iem, to fajny framework, modularny, możesz użyć z niego co jest ci potrzebne, nadaje się nie tylko do aplikacji webowych a pomaga trzymać się dobrych praktyk
- Przeglądaj grona w kategorii Internet i Komputery
- Przeglądaj grona w okolicy Warszawa
- Załóż własne grono tematyczne
- Zostań moderatorem
Podobne Tematy
|
|
Wszystko co związane z programowaniem w Java (J2EE, JSP, JDBC, itd) test
Miejsca grona (1)
-
Kino Luna ul. Marszałkowska, Warszawa
www.kinoluna.pl kino.luna@maxfilm.com.pl 22 621 78 28
- Dodaj miejsce

