Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как грамотнее написать класс?
 
 автор: newProgrammer   (06.03.2009 в 16:02)   письмо автору
 
 

Пишу абстрактный класс:
<?php
abstract class Item {
     protected function 
add() {}
     protected function 
remove() {}
}
?>

Другие классы, которые наследуют от класса Item имеют такие же методы, НО не свойства. Как правильнее сделать? Совсем не писать никаких свойств в абстрактном классе-родителе и объявлять их только в классах-потомках? Например так:
<?php
abstract class Item {
     protected function 
add() {}
     protected function 
remove() {}
}

//пример наследования
class Article extends Item {
     public 
$title;
     public 
$text;
     public function 
__construct($title$text) {
          
$this->title $title;
          
$this->text $text;
     }
     public function 
add() {}
     public function 
remove() {}
}
?>


Или объявить одно свойство-массив, где будут храниться реальные свойства класса? Например так:
<?php
abstract class Item {
     protected 
$prop// где $prop - это массив свойств;
     
protected function add() {}
     protected function 
remove() {}
}

//пример наследования
class Article extends Item {
     public 
$prop// где $prop - это массив свойств;
     
public function __construct($title$text) {
          
$this->prop['$title'] = $title;
          
$this->prop['$text'] = $text;
     }
     public function 
add() {}
     public function 
remove() {}
}
?>


Как будет правильнее с точки зрения повторного использования класса Item?

  Ответить  
 
 автор: Axxil   (06.03.2009 в 16:09)   письмо автору
 
   для: newProgrammer   (06.03.2009 в 16:02)
 

Лучше определять свойства по мере их появления, т.е. в классах-потомках

И эта, зачем определять методы в родительском классе как protected а потом их переопределять как public ?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования