Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Klasy]Budowanie klas i użycie konstruktora
PawelC
post 19.04.2009, 21:38:18
Post #1





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Hej smile.gif
Jakiś czas temu, zamówiłem książkę o OOP, trochę poczytałem i zacząłem praktykę. Stworzyłem sobie klasę mail która wysyła maila, i użyłem w niej konstruktora, i chciałem się dowiedzieć, czy dobrze myślę odnośnie tworzenia klas i użycia konstruktora w nich. Oto kod:
  1. <?php
  2.        class mail
  3.        {
  4.            public $nadawca;
  5.            public $odbiorca;
  6.            public $temat;
  7.            public $tresc;
  8.            
  9.            
  10.                    function __construct($odbiorca)
  11.                    {
  12.                        $this -> odbiorca = $odbiorca;
  13.                    }
  14.                    
  15.                    
  16.                    public function ustawTemat($temat)
  17.                    {
  18.                        $this-> temat = $temat;
  19.                    }
  20.                    
  21.                    
  22.                    public function ustawTresc($tresc)
  23.                    {
  24.                        $this -> tresc= $tresc;
  25.                    }
  26.                    
  27.                    
  28.                    public function ustawNadawce($nadawca)
  29.                    {
  30.                        $this-> nadawca = $nadawca;
  31.                    }
  32.                    
  33.                    
  34.                    public function wyslijMaila()
  35.                    {
  36.                        mail($this->odbiorca,$this->temat,$this->tresc.$this->nadawca);
  37.                    }
  38.        }
  39.        
  40. $mail=new mail('adres@wp.pl');
  41. $mail->ustawNadawce('ktos@adres.pl');
  42. $mail->ustawTemat('Temat testowy');
  43. $mail->ustawTresc('przykladowa tresc');
  44. $mail->wyslijMaila();
  45. ?>

Proszę o opinie, w szczególności czy mój tok rozumowania odnośnie tworzenia klas i używania w nich konstruktora jest dobry. Wiem że dla Was, napisanie takiej klasy to pikuś, ale dopiero raczkuje w OOP i chciałbym poznać waszą opinię.

Ten post edytował ExPlOiT 19.04.2009, 21:40:06
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 17)
LBO
post 19.04.2009, 22:05:25
Post #2





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

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


@belliash: nie musi.

@ExPlOiT: całkiem zgrabnie jak na początek, ale kilka uwag się znajdzie.
Po pierwsze, może być kilku odbiorców, a ty tego nie wziąłeś pod uwagę.

Po drugie mógłbyś wydzielić wysyłanie maila np. do osobnej klasy lub poprzez dziedziczenie.
  1. <?php
  2. // wysylanie maila w osobnej klasie
  3. class mail
  4. {
  5.    protected $sender;
  6.  
  7.    public __construct(mailSender $sender)
  8.    {
  9.        $this->sender = $sender;
  10.    }
  11.  
  12.    // tutaj reszta Twoich metod + ustawNadawce/Nadawcow
  13.  
  14.    public function wyslijMaila()
  15.    {
  16.        // teraz mozesz tworzyc klase dziedziczaca po mailSender
  17.        // i wewnatrz niej użyć mail lub inną w której sam będziesz składać nagłowki do kupy
  18.        // i wysylac do serwera poczty.
  19.        $this->sender->send($this->odbiorca,$this->temat,$this->tresc.$this->nadawca);
  20.    }
  21. }
  22. ?>


Wiem, że na początek to dużo po wprowadzam rzeczy z którymi niekoniecznie jesteś zaznajomiony, ale w ten sposób od początku nauczysz się dobrych praktyk.

Ten post edytował LBO 19.04.2009, 22:06:06
Go to the top of the page
+Quote Post
piotrooo89
post 19.04.2009, 22:09:54
Post #3


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




a ja to rozwiązałem tak:

Temat: klasa_mailing

tylko wydaje mi się że trochę nie o to chodzi bo ty na sztywno podajesz maile a ja je dynamicznie wczytuje.


--------------------
Go to the top of the page
+Quote Post
LBO
post 19.04.2009, 22:17:16
Post #4





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

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


Cytat(belliash @ 19.04.2009, 23:07:28 ) *
@LBO: wiem ze nie musi - domyslnie przyjmowane jest jako public... ale jak pisac to pisac wszedzie albo nigdzie. winksmiley.jpg


Ale to już kwestia standardów kodowania a nie poprawnej konstrukcji klasy.

Cytat(piotrooo89 @ 19.04.2009, 23:09:54 ) *
tylko wydaje mi się że trochę nie o to chodzi bo ty na sztywno podajesz maile a ja je dynamicznie wczytuje.


Mailing (wysyłka do subskrybentów) )a mailer (mechanizm wysyłania maila) to dwie rożne rzeczy i nie powinieneś Ich mieszać. Skłaniałbym się do wykorzystania obiektów mail wewnątrz klasy mailera.
Go to the top of the page
+Quote Post
PawelC
post 19.04.2009, 22:22:39
Post #5





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Dzięki za uwagi. Ta klasa ma obsłużyć wysyłanie do mnie maila z formularza kontaktowego, czyli będzie jeden odbiorca. Bo w przypadku gdyby było kilku odbiorców mógłbym to tak zrobić:
  1. <?php
  2.        class mail
  3.        {
  4.            public $nadawca;
  5.            public $odbiorca;
  6.            public $temat;
  7.            public $tresc;
  8.            
  9.            
  10.                    function __construct($nadawca)
  11.                    {
  12.                        $this -> nadawca = $nadawca;
  13.                        $this -> odbiorca = array();
  14.                    }
  15.                    
  16.                    
  17.                    public function ustawTemat($temat)
  18.                    {
  19.                        $this-> temat = $temat;
  20.                    }
  21.                    
  22.                    
  23.                    public function ustawTresc($tresc)
  24.                    {
  25.                        $this -> tresc= $tresc;
  26.                    }
  27.                    
  28.                    
  29.                    public function dodajOdbiorce($odbiorca)
  30.                    {
  31.                        array_push($this->odbiorca,$odbiorca);
  32.                    }
  33.                    
  34.                    
  35.                    public function wyslijMaila()
  36.                    {
  37.                        
  38.                        foreach($this->odbiorca as $dokogo)
  39.                        {
  40.                        mail($dokogo,$this -> temat,$this->tresc,'From:'. $this->nadawca);
  41.                        }
  42.                    }
  43.        }
  44.        
  45. $mail=new mail('nadawca@wp.pl');
  46. $mail->dodajOdbiorce('biuro@cos.pl');
  47. $mail->ustawTemat('Temat testowy');
  48. $mail->ustawTresc('przykladowa tresc');
  49. $mail->wyslijMaila();
  50. ?>

Oczywiście o ile dobrze myślę. I np w wczytać listę odbiorców z pliku txt

Ten post edytował ExPlOiT 19.04.2009, 22:28:22
Go to the top of the page
+Quote Post
Crozin
post 20.04.2009, 07:11:01
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Rada: jak najszybciej porzuć polskie nazewnictwo w kodzie

@LBO: Jak rozumiem chciałeś pokazać możliwość uzyskania kilku dróg wysłania maila, przez: mail(), smtp, cokolwiek innego. Tylko wtedy klasa MailSender nie może dziedziczyć po Mail - to by bez sensu było przecież. winksmiley.jpg Powinna za to przyjmować cały obiekt Mail jako jakiś argument (w końcu z czasem klasa Mail rozrośnie się o dołączanie załączników itp. więc przekazywanie poszczególnych pól danych nie spisze się za dobrze).

  1. <?php
  2.  
  3. class Mail{
  4.    private $addressee = array();
  5.    private $sender;
  6.    
  7.    private $subject;
  8.    private $content;
  9.    
  10.    public function __construct(){
  11.        //w konstruktowrze nie ma sensu niczego upychać na siłę
  12.        //możesz co prawda dodać obsługę nadawania nadawcy
  13.    }
  14.    
  15.    public function addAddressee($mail, $name){
  16.        //mail to adres, name to ładna nazwa trafiająca do nagłówka
  17.        $this->addressee[$mail] = $name;
  18.    }
  19.    
  20.    public function setSender($sender){
  21.        $this->seneder = $sender;
  22.    }
  23.    
  24.    public fuction setSubject($subject){
  25.        $this->subject = $subject;
  26.    }
  27.    
  28.    public function setContent($content){
  29.        $this->content = $content;
  30.    }
  31. }
  32.  
  33. abstract class MailSender{
  34.    private $mail;
  35.  
  36.    public function setMail(Mail $mail){
  37.        $this->mail = $mail;
  38.    }
  39.    
  40.    abstract public function send();
  41. }
  42.  
  43. class SMTPMailSender extends MailSender{
  44.    public function send(){
  45.        //wysyłanie maila poprzez SMTP
  46.    }
  47. }
  48.  
  49. class MailMailSender extends MailSender{
  50.    public function send(){
  51.        //wysyłanie maila poprzez mail()
  52.    }
  53. }
  54.  
  55. //--------------------------
  56. $mail = new Mail();
  57. //ustawienie wszystkich danych
  58. $sender = new MailMailSender();
  59. $sender->setMail($mail);
  60. $sender->send();
  61.  
  62.  
  63. //--------------------------
  64. //ewentalnie możesz w Mail dodać metodę robiącą to co powyżej
  65. ?>
Oczywiście to tylko szkielet z najbardziej podstawowymi metodami. Zauważ że taka konstrukcja umożliwia Ci masowe wysyłanie dwóch rodzajów maili:
1) Wielu adresatów, jedna treść: wtedy tworzysz jeden Mail, jeden MailSender a wielu adresatów obsługujesz poprzez podanie wielu maili w pierwszym parametrze mail() (więcej w manualu)
2) Wielu adresatów, dla każdego inna treść: wtedy tworzysz kilka obiektów Mail i poprzez MailSeneder::addMail() (tutaj nie pokazanej) wielokrotnie (w pętli) wykonujesz całe wysyłanie
Go to the top of the page
+Quote Post
LBO
post 20.04.2009, 08:16:06
Post #7





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

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


Cytat(Crozin @ 20.04.2009, 08:11:01 ) *
@LBO: Jak rozumiem chciałeś pokazać możliwość uzyskania kilku dróg wysłania maila, przez: mail(), smtp, cokolwiek innego. Tylko wtedy klasa MailSender nie może dziedziczyć po Mail - to by bez sensu było przecież. winksmiley.jpg


A czytałeś dołączony kod? Napisałem wyraźnie dziedziczenie ALBO dodatkowy obiekt.

Pozdrawiam smile.gif
Go to the top of the page
+Quote Post
Crozin
post 20.04.2009, 08:24:50
Post #8





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Czytałem, to albo też - tyle że z dziedziczeniem to zły pomysł - z dodatkowym obiektem jak najbardziej - dlatego się "czepiam". winksmiley.jpg
Go to the top of the page
+Quote Post
phpion
post 20.04.2009, 08:31:36
Post #9





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(LBO @ 20.04.2009, 09:16:06 ) *
A czytałeś dołączony kod? Napisałem wyraźnie dziedziczenie ALBO dodatkowy obiekt.

Dziedziczenie? Nie bardziej polimorfizm?

smile.gif
Go to the top of the page
+Quote Post
LBO
post 20.04.2009, 08:35:43
Post #10





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

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


Cytat(Crozin @ 20.04.2009, 09:24:50 ) *
Czytałem, to albo też - tyle że z dziedziczeniem to zły pomysł - z dodatkowym obiektem jak najbardziej - dlatego się "czepiam". winksmiley.jpg


a Czemu zły? Ile razy Ci się zdarza zmieniać silnik wysyłający maile?
Fakt, wydzielenie obiektu wysyłającego jest elastyczne, ale wcale nie znaczy, że potrzebne. Czasami to zwykłe komplikowanie kodu.

  1. <?php
  2. abstract class Mail
  3. {
  4.    // settery i gettery
  5.  
  6.    abstract public function send();
  7. }
  8.  
  9. class BasicMail extends Mail
  10. {
  11.    public function send()
  12.    {
  13.        // tutaj używasz mail()
  14.    }
  15. }
  16.  
  17. class SmtpMail extends Mail
  18. {
  19.    // konstruktor z danymi konfiguracyjnymi do serwera
  20.  
  21.    public function send()
  22.    {
  23.        // a tutaj składasz nagłówki i odpowiedź dla serwera SMTP
  24.    }
  25. }
  26. ?>


I też bangla.

edit:

mały błędzik był smile.gif

Ten post edytował LBO 20.04.2009, 08:38:27
Go to the top of the page
+Quote Post
mike
post 20.04.2009, 08:43:38
Post #11





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(LBO @ 20.04.2009, 09:35:43 ) *
a Czemu zły? Ile razy Ci się zdarza zmieniać silnik wysyłający maile?
Fakt, wydzielenie obiektu wysyłającego jest elastyczne, ale wcale nie znaczy, że potrzebne. Czasami to zwykłe komplikowanie kodu.
Bardzo często w środowisku deweloperskim masz inny mechanizm do wysyłki maili.
Że już nie wspomnę o testowaniu aplikacji. Podczas nich często zdarza się zmieniać silnik wysyłający maile.
Go to the top of the page
+Quote Post
PawelC
post 20.04.2009, 09:03:41
Post #12





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Cytat(Crozin)
Rada: jak najszybciej porzuć polskie nazewnictwo w kodzie

A to dlaczego?

No więc tak tutaj jest część kodu odpowiedzialna za dodanie adresata/adresu:
  1. <?php
  2. public function addAddressee($mail, $name){
  3.        //mail to adres, name to ładna nazwa trafiająca do nagłówka
  4.        $this->addressee[$mail] = $name;
  5.    }
  6. ?>

I jak zrobić to żeby, wczytać wszystkie maile i wysłać do każdego? Bo wczoraj napisałem kod który wczytuje, ale wysyłał tylko do jednej osoby, i kod wyglądał tak:
  1. <?php
  2.         class mail
  3.         {
  4.             public $nadawca;
  5.             public $odbiorca;
  6.             public $temat;
  7.             public $tresc;
  8.            
  9.            
  10.                     function __construct($nadawca)
  11.                     {
  12.                         $this -> nadawca = $nadawca;
  13.                         $this -> odbiorca = array();
  14.                     }
  15.                    
  16.                    
  17.                     public function ustawTemat($temat)
  18.                     {
  19.                         $this-> temat = $temat;
  20.                     }
  21.                    
  22.                    
  23.                     public function ustawTresc($tresc)
  24.                     {
  25.                         $this -> tresc= $tresc;
  26.                     }
  27.                    
  28.                    
  29.                     public function dodajOdbiorce()
  30.                        {
  31.                    
  32.                            $email=file('emaile.txt');
  33.                            foreach($email as $odbiorca)
  34.                            {
  35.                              array_push($this->odbiorca,$odbiorca);
  36.                              return $odbiorca;
  37.                             }
  38.                        }
  39.                    
  40.                    
  41.                     public function wyslijMaila()
  42.                     {
  43.                        
  44.                         foreach($this->odbiorca as $dokogo)
  45.                         {
  46.                         mail($dokogo,$this -> temat,$this->tresc,'From:'. $this->nadawca);
  47.                         }
  48.                     }
  49.         }
  50.        
  51. $mail=new mail('nadawca@wp.pl');
  52. $mail->dodajOdbiorce();
  53. $mail->ustawTemat('Temat testowy');
  54. $mail->ustawTresc('przykladowa tresc');
  55. $mail->wyslijMaila();
  56. ?>

Domyślam się, że gdzieś popełniłem pewnie parę błędów.
Go to the top of the page
+Quote Post
Crozin
post 20.04.2009, 15:03:44
Post #13





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
A to dlaczego?
1) Estetyka. Języki prog. same w sobie stosują ang. nazewnictwo (function, class, new, this, switch itp.) a mieszanie dwóch języków wygląda paskudnie:
Kod
private function mojaFunkcja(Iterator $parametr)

2) Kod pisany po polsku zrozumiały jest dla może kilkuset tysięcy osób - Polacy mający jakieś pojęcie o prog. Kod pisany po angielsku jest dostępny dla iluś tam milionów
3) Wszystkie dokumentacje etc. pisane są pierwotnie po angielsku.


Funkcja mail() może przyjąć jako pierwszy argument całą listę adresów mailowych na które ma wysłać maila - zobacz w manualu.
Go to the top of the page
+Quote Post
PrinceOfPersia
post 21.04.2009, 15:22:41
Post #14





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

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


  1. <?php
  2. $mail=new mail('adres@wp.pl');
  3. $mail->ustawNadawce('ktos@adres.pl');
  4. $mail->ustawTemat('Temat testowy');
  5. $mail->ustawTresc('przykladowa tresc');
  6. $mail->wyslijMaila();
  7. ?>


a może lepiej nieco to uprościć, po co się męczyć i za każdym razem pisać $mail->ustawCośtam?

$mail=new mail('nadawca@wp.pl', 'biuro@cos.pl', 'Temat testowy', 'przykladowa tresc');
$mail->wyslijMaila();

tak łatwiej, lepiej i bardziej "obiektowo". W końcu do tego służą konstruktory. A jak będziesz miał kilku odbiorców to możesz przecież ich podać też w konstruktorze jako tablicę:
$odbiorcy = array('prezydent@polska.gov', 'premier@sejm.pl', 'ciocia_jadzia@gmail.com');
$mail=new mail('nadawca@wp.pl', $odbiorcy, 'Temat testowy', 'przykladowa tresc');
$mail->wyslijMaila();
a w funkcji wyslijMaila sprawdzasz czy $odbiorca jest tablica is_array($this->odbiorca) , i jak tak to przelatujesz foreach, a jak nie to wysyłaś tylko do jednego odbiorcy. Proste i elastyczne. Po wywaleniu funkcji dostępowych twoja klasa wydaje się dużo mniejsza i bardziej przejrzysta. A jeżeli jednak nie odpowiada Ci podawanie danych w konstruktorze (bo na przykład masz zamiar modyfikować twojego maila zanim go wyślesz) to poczytaj o metodach magicznych __set i __get
http://www.php.rk.edu.pl/w/p/metody-magiczne/

  1. <?php
  2. public $temat;
  3.  
  4.  ...
  5.  
  6.  public function ustawTemat($temat)
  7.  {
  8.      $this-> temat = $temat;
  9.  }
  10. ?>


No ale albo robisz zmienną $temat (i inne) publiczne, albo robisz prywatne i dopiero wtedy potrzebujesz metod dostępowych typu ustawTemat. Przecież jak masz public to możesz się normalnie, bez żadnych funkcji odwoływać do tych zmiennych poprzez $mail->temat = "dzieńdobry ciociu" w dowolnym miejscu kodu, o ile stworzyłeś wcześniej ten obiekt. Z tym, że takie "upublicznianie danych" nie jest wcale zalecane w programowaniu obiektowym i dlatego w trosce o prywatność obiektów robi się zmienne prywatne (private zamiast public przed nazwą ) conajwyżej udostępniając publiczną "metodę dostępową". Co najwyżej, bo czasami jest to zbyteczne. Na przykład jeśli treść danego maila się nie będzie zmieniała, tylko raz przypiszesz i już to równie dobrze można to umieścić w konstruktorze i już nie męczyć się i obiektu smile.gif

Cytat
Proszę o opinie, w szczególności czy mój tok rozumowania odnośnie tworzenia klas i używania w nich konstruktora jest dobry. Wiem że dla Was, napisanie takiej klasy to pikuś, ale dopiero raczkuje w OOP i chciałbym poznać waszą opinię.

Hmm... ja bym powiedział, że za dużo się napatrzyłeś w czyjś kod i przykłady, a brakuje Ci teoretycznego zrozumienia smile.gif wiesz "jak", ale nie wiesz "po co" smile.gif

Ten post edytował PrinceOfPersia 21.04.2009, 15:49:56


--------------------
Go to the top of the page
+Quote Post
LBO
post 22.04.2009, 13:59:52
Post #15





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

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


Cytat(mike @ 20.04.2009, 09:43:38 ) *
Bardzo często w środowisku deweloperskim masz inny mechanizm do wysyłki maili.
Że już nie wspomnę o testowaniu aplikacji. Podczas nich często zdarza się zmieniać silnik wysyłający maile.

Hej mike, piszesz o mockowaniu obiektów? To rozumiem i się zgadzam.
Bardziej mi chodziło o podmianę sendera w czasie działania skryptu, bo przy takim bzdeciku nie widzę za bardzo innego zastosowania.
A tak nadal podtrzymuje moje dalsze słowa (których już nie skomentowałeś ;P)

Cytat
Fakt, wydzielenie obiektu wysyłającego jest elastyczne, ale wcale nie znaczy, że potrzebne. Czasami to zwykłe komplikowanie kodu.
Go to the top of the page
+Quote Post
dr_bonzo
post 22.04.2009, 14:26:11
Post #16





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Ja lubie zaczynac pisanie klas od drugiej strony, czyli od jej uzywania, potrzebujesz wyslac mailing do 1000 userow, kazdy dostanie ten sam email.
  1. <?php
  2. $emailSender=  new EmailSender($serverSMTP, 'user', 'haslo');
  3. $email = new Email( $title, $subject );
  4. foreach ( $users as $user )
  5. {
  6.    $emailSender->send( $email, $user->email );
  7. }
  8. ?>


a teraz stworz klasy ktore to wykonaja.

Dzieki temu stworzysz cos czego potrzebujesz, i cos co robi to czego pragniesz.
Nie bedziesz dopisywal 100tek metod ktorych nigdy nie uzyjesz (no chyba ze piszesz uniwersalna biblioteke - ale, tu masz uniwersalne potrzeby).

Potem okaze sie ze potrzebujesz czegos jezszce - poprawiasz, itd.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
PawelC
post 22.04.2009, 22:58:38
Post #17





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Cytat(PrinceOfPersia)
Hmm... ja bym powiedział, że za dużo się napatrzyłeś w czyjś kod i przykłady, a brakuje Ci teoretycznego zrozumienia smile.gif wiesz "jak", ale nie wiesz "po co" smile.gif

No właśnie, bo w książce mało co jest napisane o przykładach.


dr_bonzo dzięki, może uda mi się coś wykombinować, z tego co widzę to będę musiał napisać dwie klasy:
EmailSender
Email
I napewno będę musiał zastosować dziedziczenie biggrin.gif

PrinceOfPersia z OOP mam jak narazie małe doświadczenie, a więc komplikuje sobie wszystko jak mogę biggrin.gif ponieważ nie jestem w tym płynny, ale się staram.

Crozin masz rację z tym nazewnictwem, mam znajomego programistę i to samo mówił o nazewnictwie co Ty

Ten post edytował ExPlOiT 22.04.2009, 22:59:40
Go to the top of the page
+Quote Post
Crozin
post 23.04.2009, 05:24:38
Post #18





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
I napewno będę musiał zastosować dziedziczenie
Tylko nie zrób telefonistki dziedziczącej po telefonie
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: 13.08.2025 - 23:16