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
Crozin
post
Post #2





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

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


1. Chodzi o to, że takie rzeczy powinny być właściowścią obiektu (każda z osobna), a nie umieszczone w tablicy. Dlaczego? Bo łatwiej wtedy przydzielić im indywidualne cechy, łatwiej udokumentować kod czy ogólnie utrzymywać go.
2. Rozumiem, że te planety nie ograniczają się do naszego Układu Słonecznego? W takim wypadku obiekt typu Planeta powinien mieć jakieś podstawowe właściwości opisujące samą planetę (np. nazwa czy wspomniana szybkość ogólnego rozwoju). Punkty przydzielone przez użytkownika mogą być albo bezpośrednimi właściwościami tego obiektu, mogą też być osobnym obiektem będącym właściwością obiektu Planeta. Które rozwiązanie jest lepsze? To już zależy, m.in. od tego czy obiekt Planeta i MetodykaRozwojuPlanety są rozbudowane czy nie. Jednak prawdopodobnie osobny obiekt, będzie lepszym rozwiązaniem.
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: 10.10.2025 - 15:03