Wzorce projektowe: Singleton w Javie

Opublikowany: 2021-11-13

Wzorce projektowe są korzystne dla programistów, gdy muszą wykorzystać najlepsze dostępne praktyki w tworzeniu oprogramowania zorientowanego obiektowo. Wzorce projektowe mogą być rozumiane jako dobrze sprawdzone i wypróbowane i przetestowane rozwiązania do rozwiązywania danego problemu projektowego. Design Systems opisuje problem, rozwiązanie, kiedy zastosować rozwiązanie i jego konsekwencje. W pewnym sensie wzorce projektowe można traktować jako różne szablony, które programiści mogą zaimplementować, gdy rozwiązują określone problemy projektowe zorientowane obiektowo.

Niektóre cechy korzystania z wzorców projektowych w Javie w porównaniu z kodowaniem od podstaw obejmują:

  • Wzorce projektowe są już zdefiniowane i wdrożone. W rezultacie zapewniają standardowe podejście do rozwiązywania powtarzających się problemów. W tym sensie pomaga programistom zaoszczędzić dużo czasu i wysiłku.
  • Korzystanie z wzorców projektowych zapewnia możliwość ponownego wykorzystania fragmentu kodu, co prowadzi do wysokiej łatwości konserwacji i niezawodności kodu Java. Wszystko to zmniejsza całkowity koszt posiadania (TCO) dostępnego oprogramowania.
  • Wzorce projektowe sprawiają, że kod jest łatwy do odczytania i zrozumienia, co prowadzi do szybszej komunikacji i bezproblemowego tworzenia oprogramowania.

Język programowania Java oferuje różne wzorce projektowe dla programistów i deweloperów, które można ogólnie podzielić na trzy kategorie:

  • Kreatywne wzorce projektowe
  • Strukturalne wzorce projektowe
  • Behawioralne wzorce projektowe

Wszystkie te wzorce są używane do różnych przypadków użycia i celów. W tym artykule porozmawiajmy o jednym rodzaju wzorca projektowego w Javie — wzorcu projektowym Singleton, który należy do kategorii Wzorce projektowe kreacji.

Spis treści

Wzorzec projektowy Singleton w Javie

Wzorzec projektowy Singleton należy do kategorii Wzorzec projektowy kreacyjny. Zapewnia, że ​​klasa ma tylko jedną instancję, zapewniając tej instancji globalny punkt dostępu. W ten sposób Wzorzec Projektowy Singleton rozwiązuje jednocześnie dwa problemy – są to:

1. Zapewnia, że ​​dana klasa ma tylko jedną instancję.

Należy to wziąć pod uwagę, zwłaszcza podczas pracy nad udostępnionymi zasobami, takimi jak baza danych lub plik. Wyobraź sobie, że stworzyłeś obiekt, ale po pewnym czasie postanowiłeś stworzyć nowy. We wzorcu projektowym Singleton zamiast otrzymać nowy obiekt, otrzymasz ten, który już stworzyłeś. W ten sposób ten wzorzec projektowy zapewnia brak nadmiarowości obiektów i to, że klasa ma tylko jedną instancję. To zachowanie jest niemożliwe do zreplikowania za pomocą konstruktorów, ponieważ wywołania konstruktora muszą zawsze zwracać nowy obiekt.

2. Zapewnia globalny punkt dostępu do konkretnej instancji.

Zmienne globalne, których używasz do przechowywania podstawowych obiektów, są bardzo przydatne. Są one również równie niebezpieczne, ponieważ każdy fragment kodu może nadpisać zawartość zmiennych globalnych, co prowadzi do błędnego fragmentu kodu. Podobnie jak zmienne globalne, Singleton Patterns umożliwia dostęp do różnych obiektów z dowolnego miejsca w programie. Jednak w przeciwieństwie do zmiennych globalnych, Singleton Patterns zabezpiecza tę instancję przed nadpisaniem przez inny program.

Obecnie Wzorzec Projektowy Singleton jest tak szeroko stosowany i rozpowszechniony, że programiści mogą nazywać coś Singletonem, nawet jeśli rozwiązuje tylko jeden z wyżej wymienionych problemów. Wszystkie implementacje wzorców projektowych Singleton mają następujące dwa wspólne kroki:

  • Uczynienie domyślnego konstruktora prywatnym, aby uniemożliwić innym klasom i obiektom używanie nowych operatorów z klasami Singleton.
  • Budowa statycznej metody tworzenia, która będzie funkcjonować jako konstruktor. Ta metoda następnie wywołuje prywatny konstruktor w celu utworzenia obiektu i zapisuje go w polu statycznym. Wszystkie nadchodzące wywołania tej konkretnej metody zwracają teraz obiekt w pamięci podręcznej.

Funkcjonowanie rządu jest doskonałym przykładem z życia wziętym, pozwalającym zrozumieć, jak działają wzorce projektowe Singleton. Niezależnie od tożsamości osób, które tworzą rządy, tytuł „Rząd X” jest globalnym punktem dostępu, który identyfikuje grupę ludzi, o których się mówi.

Implementacja wzorca projektowego Singleton w Javie

Przejdź przez poniższą listę kroków, aby zaimplementować własny wzorzec projektowy Singleton w Javie:

  • Dodaj prywatne pole statyczne do klasy, w której chcesz przechowywać pojedynczą instancję.
  • Aby uzyskać odpowiednią instancję singleton, należy zadeklarować publiczną metodę statyczną.
  • Teraz musisz wykonać „leniwą inicjalizację” wewnątrz metody statycznej. Powinno to zasadniczo rozwinąć nowy obiekt przy pierwszym wywołaniu i umieścić go w polu statycznym. Metoda statyczna musi zawsze zwracać tę konkretną instancję we wszystkich kolejnych wywołaniach.
  • Ustaw konstruktora jako prywatnego. Metoda statyczna klasy nadal będzie mogła wywołać konstruktor, ale nie inne obiekty.
  • Przejrzyj kod klienta i zastąp wszystkie bezpośrednie wywołania konstruktora Singletona wywołaniami jego statycznej metody tworzenia.

Na zakończenie

Java to bardzo zróżnicowany i wpływowy język programowania, który stał się podstawą większości obecnie używanych aplikacji internetowych i desktopowych. Zapewnia kilka funkcji i strategii, które programiści mogą wykorzystać do opracowania wydajniejszego oprogramowania w zoptymalizowany sposób. Wzorce projektowe są jedną z takich strategii przyjętych przez programistów Java, aby ich kody były czytelne, wielokrotnego użytku i zrozumiałe.

Wzorce projektowe stanowią jedną z podstawowych koncepcji, którą każdy początkujący programista powinien przyjrzeć się. Świat tworzenia oprogramowania jest szeroki i obejmuje wszystkie aspekty, od front-endu, back-endu, bazy danych, serwera i innych. W takim scenariuszu należy uporządkować potrzebę godziny w swoim podejściu do nauki. W upGrad możesz zapoznać się z Kursami Programowania , które pomogą Ci zbudować długotrwałą karierę w dziedzinie tworzenia oprogramowania. Oferowany we współpracy z IIIT-B kurs ten jest prowadzony przez ekspertów branżowych i daje szansę na rozwój kariery w wybranym przez siebie kierunku. Sprawdź szczegóły kursu i zarejestruj się już dziś – kurs rozpoczyna się 30 września 2021!

Czy wzorzec projektowy Singleton jest jedynym wzorcem projektowym dostępnym w języku Java?

Nie, Java oferuje wiele Wzorców Projektowych dla programistów, a Singleton jest tylko jednym z nich.

Jakie typy wzorców projektowych są dostępne w języku Java?

Java zapewnia programistom zasadniczo trzy typy wzorców projektowych;
1. Kreatywne wzorce projektowe
2. Strukturalne wzorce projektowe
3. Behawioralne wzorce projektowe

Jakie są korzyści z używania wzorców projektowych w Javie?

Korzystanie z wzorców projektowych w kodzie zapewnia następujące korzyści związane z pewnym strzałem:
1. Zwiększona czytelność
2. Popraw modułowość
3. Łatwy dostęp
4. Łatwość projektowania i tworzenia programów.