Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> klasa korzstająca z innych klas
zzeus
post
Post #1





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


Witam,
piszę sobie klasę Calculator która podczas obliczeń będzie korzystała z innych klas, np. Article.
W zależności od tego co kalkulator będzie obliczał będą potrzebne różne instancje klasy Towar, w sumie 5 sztuk. Mój pomysł żeby to zrobić tak:
  1. class Calculator
  2. {
  3. private $_objArticle1;
  4. private $_objArticle2;
  5. private $_objArticle3;
  6. private $_objArticle4;
  7. private $_objArticle5;
  8.  
  9. ...
  10.  
  11. public function setType($_strType)
  12. {
  13. case "k":
  14. $this->_objArticle1 = new Article();
  15. $this->_objArticle2 = new Article();
  16. break;
  17. case "c":
  18. $this->_objArticle3 = new Article();
  19. $this->_objArticle4 = new Article();
  20. break;
  21. case "kc":
  22. $this->_objArticle1 = new Article();
  23. $this->_objArticle2 = new Article();
  24. $this->_objArticle3 = new Article();
  25. $this->_objArticle4 = new Article();
  26. break;
  27. }
  28. }


W dalszej części klasa będzie korzystała z odpowiednich instancji klasy Article, czy ogólnie podejście jest dobre czy inaczej należałoby się to zabrać ?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Mi tu pasują tablice, zamiast tylu zmiennych.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
zzeus
post
Post #3





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


Mogłaby być tablica, czy nawet kolekcja, ale tak mi się wydaje będzie czytelniej, oczywiście te nazwy zmiennych są przykładowe a w rzeczywistości opisują dokładniej obiekt.


--------------------
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale to jest naprawdę mało sensowne. winksmiley.jpg

Jeśli jest struktura, która zawiera kilka takich samych zmiennych, to na 90% będzie potrzebna tablica.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Fifi209
post
Post #5





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Hmm, a może tak?

  1. <?php
  2.  
  3. class Calc {
  4.  
  5. public function __construct() {}
  6.  
  7. }
  8.  
  9. interface iCalc {
  10. public function x();
  11. }
  12.  
  13.  
  14. class Article extends Calc implements iCalc{
  15.  
  16. // tutaj robisz z kalkualtorem co chcesz
  17.  
  18. }
  19.  
  20. class Factory {
  21.  
  22. public function __construct($type) {
  23. switch ($type) {
  24. case 'k':
  25. return new Article();
  26. break;
  27.  
  28. default:
  29. return false;
  30. break;
  31. }
  32. }
  33.  
  34. }
  35.  
  36.  
  37. ?>


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
zegarek84
post
Post #6





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


przykład jest trochu zbyt ogólny i nie pokazuje logiki jaką chcesz osiągnąć winksmiley.jpg
mowa tutaj o wymianie "podalgorytmu" - akurat do tego nadaje się strategia, jednak obiekt ma chyba w sobie zawierać także kilka innych klas by stanowić pełną funkcjonalność - więc fasada...

akurat do podawania odpowiednich klas w zależności od sytuacji (sterowania "procesami") nadaje się przykłąd podany przez Fifi209 czyli fabryka zwracająca odpowiednią klasę w zależności od sytuacji...


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

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 Aktualny czas: 19.08.2025 - 17:56