मैं पेड़ को संभालने के लिए कुछ छोटे सहायक वर्ग लिख रहा हूं। असल में, मेरे पास एक नोड और एक विशेष रूट नोड है जो पेड़ का प्रतिनिधित्व करता है। मैं इसे सामान्य और सरल रखना चाहता हूं।संरक्षित रचनाकारों को अच्छा अभ्यास माना जाता है?
<?php
class Tree extends TreeNode{
public function addById($node_id, $parent_id, $generic_content){
if($parent = $this->findNodeById($parent_id)){
$parent->addChildById($node_id, $generic_content);
}
}
}
class TreeNode{
public function __construct($node_id, $parent_id, $generic_content){
// ...
}
protected function addChildById($node_id, $generic_content){
$this->children[] = new TreeNode($this->node_id, $node_id, $generic_content);
}
}
$Categories = new Tree;
$Categories->addById(1, NULL, $foo);
$Categories->addById(2, NULL, $bar);
$Categories->addById(3, 1, $gee);
?>
मेरे सवालों का:: इस कोड का हिस्सा है
- यह मजबूर करने के लिए
TreeNode
उदाहरणोंTreeNode::addById()
के माध्यम से बनाया जा करने के लिए समझदार है? - यदि ऐसा है, तो
TreeNode::__construct()
को निजी/संरक्षित घोषित करना अच्छा अभ्यास होगा?