Korumalı kurucular iyi uygulama olarak kabul edilir?

0 Cevap php

Ben ağaçları işlemek için bazı küçük yardımcı sınıfları yazıyorum. Temelde, bir düğüm ve ağaç temsil eden özel bir kök düğüm var. Ben genel ve basit tutmak istiyorum. Bu kod parçası:

<?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);

?>

Benim sorular:

  • Bu örnekleri yoluyla oluşturulacak TreeNode::addById() TreeNode zorlamak için mantıklı mı?
  • Öyle ise, bu özel / korumalı olarak TreeNode::__construct() bildirmek için iyi bir uygulama olurdu?

0 Cevap