Dames en heren OO-proggers, ik heb een vraag. We hebben een discussie hier over extenden van classes in PHP 5 - of een willekeurige andere OO taal. We hebben een grote klasse met een constructor met 8 parameters, die we heel vaak gaan extenden. De extensie hoeft die parameters vrijwel nooit aan te passen - maar moet wel vaak iets doen tijdens de instantiatie.
Nu zijn er twee mogelijkheden:
1. In de child-class de constructor overschrijven, daar de parent-constructor aanroepen en je eigen ding doen.
2. In de parent-class een lege init-method maken, die aanroepen in de constructor en in de child-classes alleen de init-method overschrijven.
De twee mogelijkheden in PHP snippet onder elkaar:
Wat is mooier, beter, handiger volgens jullie?
Nu zijn er twee mogelijkheden:
1. In de child-class de constructor overschrijven, daar de parent-constructor aanroepen en je eigen ding doen.
2. In de parent-class een lege init-method maken, die aanroepen in de constructor en in de child-classes alleen de init-method overschrijven.
De twee mogelijkheden in PHP snippet onder elkaar:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| class RelationItemList extends AdminItemList { public function __construct($query, $resPerPage = ItemList::DEFAULT_RES_PER_PAGE, $position = 1, $isSearchable = true, $isSortable = true, $hasPages = true, $hasPrevNext = true, $hasFirstLast = true) { parent::__construct($query, $resPerPage, $isSearchable, $isSortable, $hasPages, $hasPrevNext, $hasFirstLast); $this->foo = 'bar'; } } class RelationItemList extends AdminItemList { public function init() { $this->foo = 'bar'; } } |
Wat is mooier, beter, handiger volgens jullie?
Homepage | Me @ T.net | Having fun @ Procurios | Collega's gezocht: Webontwikkelaar PHP