![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 60 Pomógł: 1 Dołączył: 6.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ostatnio opanowałem ten wzorzec i napisałem w nim jedną klasę obslugi bazy danych. Bardzo podoba mi się idea singletona i chyba można by ją stosować dużo częsciej ale kiedy tak naprawde wg was singletona powinno się używać a kiedy nie? Największą zaletą jest napewno oszczędność zasobów ale jakie są wady? (napewno jakieś muszą być).
PS. W tej chwili pisze mapper czy modelator (zwał, jak zwał...) klase ktora w całym projekcie będzie mi sprawdzała poprawność napływających z zewnątrz danych. Napewno w konstruktorze będzie zładowanie mapy z pliku - przeczytanie całego pliku - mapy wszystkich zmiennych może zająć troche czasu. Gdybym zrelizował ta klase jako singleton wczytywałbym mape tylko raz.... Ten post edytował Beynar 22.12.2007, 19:05:43 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Singleton ma inne zadanie niż Ty mu wyznaczasz. Chodzi tu o dostęp do danych w każdym miejscu systemu. To, że nie będzie Ci wczytywało map da się też osiagnąć bez singletota i to z powodzeniem. Z singletonem musisz uważać, bo to jest ciągle dana globalna, choć ładniejsza i zgrabniejsza. Ja sam mimo, że używam singletona, to i tak tam, gdzie mogę, to przekazuję jego obiekt do innych obiektów. Pod pojęciem musisz uważać mam na myśli spójność projektu.
Pozdrawiam. -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 60 Pomógł: 1 Dołączył: 6.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
No tak.... zapomniałem. Przeciesz w singletonie glownie chodzi o globalny dostep do jednej instancji.
Zatem wniosek, ze nalezaloby z niego korzystac kiedy chcemy miec jakis obiekt globalny z ktorego bedziemy korzystac w calym projekcie? Taki jakby obiekt publiczny - globalny. Czy sa jakies zagrozenia zwiazne z korzystaniem z singletona? Mi sie wydaje ze mam conajmniej jedno: kiedy programista korzysta z obiektu singletona i dalje w kodzie wywola jakas funkcje czy inny obiekt ktory w srodku korzysta z tegoż wczesniej uzwyanego singletona to zostanie on w sordku np. nadpisany innymi danymi. Programista pisze dalej w glownym skrypcie, po wywolaniu jakies metody mysli ze jego obiekt ma wczesniejsze wlasciwosci, z kilku linijek wyzej... jednak linijke wyzej wywolal obiekt ktory zmienil stan singletona. Wtedy mamy zamieszanie.... Ten post edytował Beynar 24.12.2007, 10:46:15 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
...Jak zawsze, kiedy używamy danych globalnych. Przejrzyj forum - na tema singletona napisano wiele postów.
Pozdarwiam. -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem co ten Twój mapper ma dokładnie robić ale jeśli ma odbierać dane dostarczane z zewnątrz to zwykle taka klasa nazywana jest Requestem, a wzorzec singleton świetnie się nadaje do jego implementacji.
-------------------- bigZbig (Zbigniew Heintze) | blog.heintze.pl
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 60 Pomógł: 1 Dołączył: 6.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Moj mapper bedzie dzialal tak
Zewnetrzna mapa zmiennych bedzie w tym formacie: Kod string,FIRST_NAME,Imie,2,30,NOT NULL, string,LAST_NAME,Nazwisko,2,20,NOT NULL,[a-zA-Z'`] string,EMAIL,Email,4,50,NOT NULL,[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$ Dane naplywajace np. z formow beda podlegaly walidacji i tym wlasnie zajmowac sie bedzie mapper - odczytywaniem mapy i przeksztalcaniem jej do formatu w ktorym moge sprawdzic dana z wyznaczonym modelem danych. Formularzy bedzie wiele i w roznych miejscach. Wszedzie trzeba bedzie je walidowac - przepuscic przez mapper/modelator i sprawdzic poprawnosc Wiec singleton chyba bedzie sie nadawal...? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 10:03 |