Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ocena - Klasy tworzenia planety.
q3trm
post
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 26.02.2013

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


Cześć.

Na początku zaznaczam, że to moje początki OOP, żeby nie było (IMG:style_emoticons/default/facepalmxd.gif) .


  1. class creatPlanet // klasa konstrukcyjna
  2. {
  3. public $planet;
  4.  
  5. public function __construct(Planet $class)
  6. {
  7. return $this ->planet = $class;
  8. }
  9.  
  10. }
  11.  
  12.  
  13. abstract class FuncPlanet // funkcje planet
  14. {
  15. public function __construct()
  16. {
  17. $this ->nameplanet = get_class($this);
  18. $this ->increase = strlen($this ->nameplanet);
  19. }
  20.  
  21. public function getParamPlanet() //wyświetla wszystkie parametry ustawione przez użytkownika
  22. {
  23. foreach ($this ->parameter as $param => $p)
  24. {
  25. echo '<br />'.$param. ' +' .$p;
  26. }
  27. }
  28. public function getIncrease() //szybkość rozwoju planety
  29. {
  30. return $this ->increase;
  31. }
  32. public function getNamePlanet() //nazwa planety użytkownika
  33. {
  34. return $this ->nameplanet;
  35. }
  36. }
  37.  
  38.  
  39. abstract class Planet extends FuncPlanet // ustawienie początkowych parametrów planety przez użytkownika
  40. {
  41. protected $increase;
  42. protected $nameplanet;
  43. protected $parameter = array();
  44.  
  45.  
  46. function __construct($economic = 0, $military = 0, $explorative = 0)
  47. {
  48. $this ->parameter = array (
  49. 'economic' => $economic,
  50. 'military' => $military,
  51. 'explorative' => $explorative
  52. );
  53. parent::__construct();
  54. }
  55. }
  56.  
  57.  
  58. class Mercury extends Planet {}
  59. class Venus extends Planet {}
  60. class Earth extends Planet {}
  61. class Jupiter extends Planet {}
  62. class Saturn extends Planet {}
  63. class Uranium extends Planet {}
  64. class Neptune extends Planet {}
  65.  


Ten post edytował q3trm 10.04.2013, 21:52:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mstraczkowski
post
Post #2





Grupa: Zarejestrowani
Postów: 273
Pomógł: 52
Dołączył: 3.02.2013
Skąd: Przemyśl

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


Moim zdaniem masz rację i nie powinieneś zamykać wszystkiego w jednej klasie.
No chyba, że ta klasa nazywała by się w twoim przypadku SolarSystem (IMG:style_emoticons/default/wink.gif)

Nie wystarczy pisać obiektowo, trzeba także myśleć i projektować obiektowo, bo sama deklaracja klasy, oraz modyfikatory dostępu to nie OOP.

Jako, że każda planeta w układzie słonecznym jest pewnym realnym obiektem, który może charakteryzować się różnymi cechami.
Ale może posiadać także cechy wspólne słusznie rozdzieliłeś planety jako osobne klasy, które dziedziczą po klasie abstrakcyjnej Planet

Ten post edytował mstraczkowski 17.04.2013, 01:34:35
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: 7.10.2025 - 13:40