Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Zasada jednej odpowiedzialności
szczrzcz
post 20.05.2017, 11:12:48
Post #1





Grupa: Zarejestrowani
Postów: 153
Pomógł: 0
Dołączył: 20.04.2017
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


"Nigdy nie powinno być więcej niż jednego powodu do modyfikacji klasy."

Nie rozumiem tego krótkiego zdania.

"...POWÓD do modyfikacji klasy. "

"Jaki masz POWÓD do modyfikacji klasy?"

Co za cholerny POWÓD? Mogę znaleźć milion powodów do modyfikacji poniższej klasy, która jest wzorem klasy gdzie "jest zachowana zasada jednej odpowiedzialności":

  1. //pseudokod
  2. class Pocisk{
  3. public Pocisk()
  4. {
  5. _trafnoscPocisku = 0.5;
  6. _pociskZniszczylCel = false;
  7. _pociskaZostalZuzyty = false;
  8. }
  9.  
  10. public void Zniszcz()
  11. {
  12. if (!SprawdzCzyPociskZostalZuzyty())
  13. {
  14. _pociskaZostalZuzyty = true;
  15.  
  16. if (SprawdzCzyPociskZniszczylCel())
  17. _pociskZniszczylCel = true;
  18. else
  19. _pociskZniszczylCel = false;
  20. }
  21. else
  22. {
  23. throw new PociskZostalJuzZuzyty();
  24. }
  25. }
  26.  
  27. private bool SprawdzCzyPociskZostalZuzyty()
  28. {
  29. return _pociskaZostalZuzyty == false;
  30. }
  31.  
  32. private bool SprawdzCzyPociskZniszczylCel()
  33. {
  34. var rand = new Random();
  35. return rand.NextDouble() < _trafnoscPocisku;
  36. }
  37. }


Mogę chcieć dodać metodę: sprawdz_czy_pocisk_jest_czysty(), czysc(), i sto innych absurdalnych.
Go to the top of the page
+Quote Post
nospor
post 20.05.2017, 18:23:55
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ten "jeden powod" bierzesz zbyt doslownie.

Metody, ktore wymieniles to nadal jeden powod. Tym powodem jest twoj pocisk.
Co innego, jakbys chcial dopisac metode: dostarczycPizzeDlaZolnierzy()
Wowczas masz dwa powody do modyfikacji klasy: pocisk i zolnierze


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
szczrzcz
post 20.05.2017, 19:59:50
Post #3





Grupa: Zarejestrowani
Postów: 153
Pomógł: 0
Dołączył: 20.04.2017
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


dzięki, chyba bardziej nie zrozumiałem słowa "modyfikacja" klasy.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 12:26