#13. Różne podejścia


Hejka 🙂 Dziś słowem wstępu chciałbym się podzielić taką krótką refleksją na temat tego jak podchodzimy do różnych spraw i jaki ma to na nas wpływ. To jest tylko moje prywatne zdanie i masz prawo się z nim nie zgadzać. Weźmy sobie na taki przykład, taki nasz mały projekt, można by powiedzieć naukę – bo czegoś się jednak uczymy robiąc coś nowego/innego. Jesteśmy ludźmi i jesteśmy inni, każdy z nas inaczej podchodzi do takich ‘zabaw’ – zwróćmy może uwagę na dwa skrajne typy. Człowiek który się przykłada vs człowiek który to olewa. Bo jakimś tam upływie czasu osoba która się przykładała widzi efekty, tak jest w większości dziedzin życiowych, druga osoba, która to olewa – albo straci motywację i powie, że to nie ma sensu i jeżeli by chciała to by to zrobiła albo na efekty trzeba będzie czekać o wiele dłużej ( jeżeli mają być zbliżone do tych co u osoby pierwszej ). Ja widzę w sobie czasami tego drugiego człowieka, ale podejmuję z nim walkę, a Ty?


Dobra a teraz przejdźmy do konkretów 😀 . Zajmiemy się klasą odpowiadającą za dźwięk.

GameSoundService


Jeżeli pamiętacie to przedtem za dźwięk odpowiadała klasa GameDotService. Na szczęście musiałem zaimplementować zmianę głośności dźwięku w Settings Screenie(jeszcze go nie przedstawiałem – bo jeszcze nie istnieje jego pełnoprawna wersja 😛 ) i pojawiły się problemy. Gdy chciałem zmienić poziom dźwięku nic to nie dawało bo operowałem na innym obiekcie. No ok,  można przecież połączyć ze sobą dwa obiekty żeby były tym jednym i wtedy powinno być ok. Rozważyłem taką opcję, próbowałem ale niestety mój projekt nie do końca spełnia zasady SOLID, przez co musiałbym narobić dużo bałaganu w kodzie. Więc zacząłem główkować hmmm… co tu zrobić … i..?  I pomyślałem sobie OK, a jakby tak zrobić oddzielną klasę, gdzie będzie inicjalizowany ten dźwięk a następnie inne klasy będą działać dokładnie na jednym obiekcie tej nowej klasy. Brzmi OK, więc zacząłem nieco czytać o czymś takim, i znalazłem coś co się nazywa wzorcem projektowym – SINGLETONMoim zdaniem świetnie pasuje do projektu + dla mnie coś nowego bo nigdy wcześniej nie operowałem na wzorach projektowych, a mam nadzieję, że to tylko krok początkowy 😛 . Dobra warto trochę zarzucić kodem z tego jak wygląda moja klasa:

Teraz dzięki metodzie getInstance jestem w stanie utworzyć dokładnie jeden obiekt tej klasy w mojej całej aplikacji, warto też zwrócić uwagę na to jak się tworzy nowy obiekt takiej klasy w klasie innej, z racji tego iż konstruktor jest prywatny.

Klasa nie jest jeszcze skończona, ale wydaje mi się, że jest to mały krok na przód ++ 🙂

I właściwie to tyle na dziś, jak widać mniej ostatnio piszę na blogu i bardzo możliwe, że nawet w ramach konkursu nie załapie się jako uczestnik, który spełnił wszystkie wymagania( 2 posty tygodniowo chyba miało być) – ale sam dla siebie już to wygrałem bo zrobiłem wiele rzeczy których nigdy wcześniej bym nie zrobił, chociażby założenie własnego bloga. Ale nie będę tak sobie słodził bo gdyby nie to, że mam tego lenia w sobie to mógłbym dać z siebie więcej.

Nie mniej jednak postaram się przynajmniej jeden post w tygodniu wrzucać 🙂  Wszystko, baj baj 🙂

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *