Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SOLID i Zasada jednej odpowiedzialności, jak można zastosować tą zasadę dla tych klas i takiego wywołania
Nortonek
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 29.11.2003

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


Witam

Mam prośbę o nakierowanie mnie na temat pierwszej zasady SOILID, jak można zastosować tą zasadę dla tych klas i takiego wywołania,

w pierwszej klasie odwołuję się do drugiej, jednak znając życie będzie taka sytuacja że będę musiał przekazać więcej parametrów a nie tylko ID książki

i będę musiał modyfikować 2 klasy.


  1. <?php
  2.  
  3.  
  4. class Ksiazki {
  5.  
  6. private $id_ksiazki;
  7.  
  8. function __construct($id){
  9. $this->id_ksiazki - $id;
  10. }
  11.  
  12. private function zapisz_oddanie_zniszczonej_ksiazki(){
  13. global $db, $table_ksiazki_oddane;
  14.  
  15. $result0 = $db -> Execute("UPDATE $table_ksiazki_oddane SET `oddana`= '1' WHERE `id_ksiazki`='".$this->id_ksiazki."' ");
  16.  
  17. $Ksiazki_Zniszczone = new Ksiazki_Zniszczone();
  18. $Ksiazki_Zniszczone-> insert_ksiazki_zniszczone($this->id_ksiazki);
  19. }
  20.  
  21. }
  22.  
  23.  
  24. class Ksiazki_Zniszczone{
  25.  
  26. public function insert_ksiazki_zniszczone( $id_ksiazki){
  27. global $db, $table_ksiazki_zniszczone;
  28.  
  29. $result0 = $db -> Execute("UPDATE $table_ksiazki_zniszczone SET `zniszczenie_ksiazki`= '5' WHERE `id_ksiazki`='$id_ksiazki' ");
  30. }
  31.  
  32. }
  33.  
  34. ?>


Ten post edytował Nortonek 23.02.2014, 13:45:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Ormin
post
Post #2





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 3.02.2009

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


Pozwolę napisać sobie jak ja bym to zrobił i why:

  1. class Ksiazka {
  2. private $id;
  3. public function __construct($id) {
  4. $this->id = $id;
  5. }
  6.  
  7. public function getID() {
  8. return $this->id;
  9. }
  10.  
  11. }
  12.  
  13.  
  14. class Pani_Bibliotekarka {
  15.  
  16. private $db
  17.  
  18. public function __construct(db $db) {
  19. $this->db = $db;
  20. }
  21.  
  22. public function oddaj_ksiazke(Ksiazka $ksiazka) {
  23. $this->db->Execute("UPDATE tab_ksiazki_oddane SET `oddana`= '1' WHERE `id_ksiazki`='".$ksiazka->getID()."' ");
  24. }
  25.  
  26. public function oddaj_zniszczona_ksiazke(Ksiazka $ksiazka){
  27. $this->oddaj_ksiazke($ksiazka);
  28. $this->db->Execute("UPDATE tab_ksiazki_zniszczone SET `zniszczenie_ksiazki`= '5' WHERE `id_ksiazki`='".$ksiazka->getID()."' ");
  29. }
  30.  
  31. }
  32.  


Podział odpowiedzialności:
Ksiazka - reprezentuje obiekt domenowy ( naszą książkę )
Pani Bibliotekarka - reprezentuje repozytorium domenowe dla naszych książek i udostępnia API do zarządzania nimi ( w tym wypadku tylko oddawnaie zniszczonych / niezniszczonych książek )
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 11.10.2025 - 13:54