Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Klonowanie obiektu pytanie
acztery
post
Post #1





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


mam takie pytanie.

Tworze np obiket Doc(); przekazuje do niego kilka parametrów i wywołuje 1 metode. teraz chce wywyłać tę samą metodę z innymi parametrami.

czy takie podejście jest dobre. chce uniknąc ze jakies parametru np sie nadpiszą czy coś..

  1. <?php
  2. $classDoc = new Doc();
  3. $classDoc->_where = "Cytaty";
  4. $classDoc->_lang = Lang::getDisLang();
  5. $smarty->assign('RandCytat',$classDoc->getRandDoc(1));
  6.  
  7. $classDocC1 = clone $classDoc;
  8. $classDocC1->_where = "Powitanie";
  9. $smarty->assign('Powitanie',$classDocC1->getDoc());
  10.  
  11. $classDocC2 = clone $classDoc;
  12. $classDocC2->_path = "Artykuly";
  13. $classDocC2->_t = "1";
  14. $classDocC2->_f = "1";
  15. $smarty->assign('RandDocOne',$classDocC2->likeDocumentsOfPath());
  16. ?>


Ten post edytował acztery 3.04.2007, 11:24:59
Go to the top of the page
+Quote Post
LBO
post
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Cytat(acztery @ 3.04.2007, 12:24:11 ) *
czy takie podejście jest dobre. chce uniknąc ze jakies parametru np sie nadpiszą czy coś..

Nie lepiej stworzyć klasy dziedziczące po Doc? Kod by się uprościł, stał bardziej logiczny.

Nie piszę, że to co zrobiłeś jest złe, do czegoś klonowanie obiektów musi służyć.

edit:

Albo jeszcze lepiej niż dziedziczyć, byłoby zagregować (kompozycja) Doc() w tych nowych klasach.

Ten post edytował LBO 3.04.2007, 11:36:47
Go to the top of the page
+Quote Post
acztery
post
Post #3





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


LBO jak w nowych klasach cały czas korzystam z 1 new Doc żadne inne mi są nie potrzebnę, klasa doc już dziedziczy z inne klasy User.

wiec co ma namyśli pisząc "w tych nowych klasach"
Go to the top of the page
+Quote Post
LBO
post
Post #4





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Jak dla mnie wprowadziłeś za dużą abstrakcję tzn. Jedna klasa obsługuje "Cytaty", "Artykuły" etc. a co za tym idzie musisz za każdym razem ustawiać swój obiekt, żeby pobrał odpowiednie rzeczy.

Ja stworzyłbym odpowiednie klasy Articles, Citation i co tam jeszcze masz. A jak to zależy od ciebie - możesz dziedziczyć po Doc, albo jak zreflektowałem później, zagregować.

edit:
Cytat
klasa doc już dziedziczy z inne klasy User.

Dokument dziedziczy po użytkowniku?

Ten post edytował LBO 3.04.2007, 11:51:38
Go to the top of the page
+Quote Post
acztery
post
Post #5





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


nie z ty dziedziczeniem nie po użytkowniku tylko po innej klasie gdzie np mogę ustawić nazwę tabeli itp ale mało istotne.

a jak miał bym takich drobnych rzeczy 100 to co mam tworzyć 100 klas... wszystkie te dane są przechowywane w 1 tabeli bazie danych documents każdy dokument może być w kategorii i mieć różne opcje. Cytat jest traktowany jako dokument który jest w kategorii Cytaty itd. Czy klonowanie spowalnia w jakimś stopniu działanie kodu.

Ps myślę ze lepiej klonować niż inicjować klasę na nowo.
Go to the top of the page
+Quote Post
LBO
post
Post #6





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Cytat(acztery @ 3.04.2007, 12:57:41 ) *
a jak miał bym takich drobnych rzeczy 100 to co mam tworzyć 100 klas


Niekoniecznie, ja tylko daję wg mnie dobrą radę. I tak wszystko zależy od Ciebie.
Ewidentnie klonujesz, po to, żeby mieć mniej do wklepywania, ja tylko powiedziałem jak to ułatwić, o!

Cytat(acztery @ 3.04.2007, 12:57:41 ) *
Ps myślę ze lepiej klonować niż inicjować klasę na nowo.


To ja myślę, że lepiej dziedziczyć, niż klonować.
Sumarycznie, tak czy siak, przybędzie jeden obiekt w pamięci,a jako programista nie musisz się martwić "ustawianiem" obiektu.

//edit

a'propos
Cytat(acztery @ 3.04.2007, 12:57:41 ) *
a jak miał bym takich drobnych rzeczy 100 to co mam tworzyć 100 klas

Są Obiekty i obiekciki, w twoim wypadku Dokumenty i dokumenciki smile.gif Pamiętaj o tym.

Ten post edytował LBO 3.04.2007, 12:07:37
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: 21.08.2025 - 18:42