За последние 24 часа нас посетили 17382 программиста и 1605 роботов. Сейчас ищут 909 программистов ...

Pattern Composite

Тема в разделе "Решения, алгоритмы", создана пользователем shinauri, 19 июл 2014.

  1. shinauri

    shinauri Активный пользователь

    С нами с:
    17 июл 2012
    Сообщения:
    3
    Симпатии:
    0
    Доброе времени суток товарищи. У меня следующий вопрос. Мне надо из массива (массив я приведу ниже) динамический создать шаблон композит. Сам я как не старался не управился, на вашу помощь уповаю. в принципе мне интересен сам процесс динамического создания сея шаблона а не конкретно по этому массиву.

    Код (Text):
    1.  
    2. Вот массив:  
    3.          $menu_node = array(
    4.             array(
    5.                    "name"=>"Машины",
    6.                    "id"=>8,
    7.                     "parent_id"=>1,
    8.                     "has_child"=>"false"
    9.             ),
    10.  
    11.              
    12.             array(
    13.                    "name"=>"Разное",
    14.                    "id"=>9,
    15.                     "parent_id"=>1,
    16.                     "has_child"=>"false"
    17.             ),
    18.  
    19.  
    20.             array(
    21.                    "name"=>"Недвижимость",
    22.                    "id"=>2,
    23.                     "parent_id"=>1,
    24.                     "has_child"=>"true"
    25.             ),
    26.  
    27.             array(
    28.                    "name"=>"Пра пра правнук Квартиры",
    29.                    "id"=>12,
    30.                     "parent_id"=>11,
    31.                     "has_child"=>"false"
    32.             ),
    33.  
    34.             array(
    35.                    "name"=>"Пра  правнук Квартиры",
    36.                    "id"=>11,
    37.                     "parent_id"=>10,
    38.                     "has_child"=>"true"
    39.             ),
    40.  
    41.             array(
    42.                    "name"=>"Сын Квартиры",
    43.                    "id"=>10,
    44.                     "parent_id"=>3,
    45.                     "has_child"=>"true"
    46.             ),
    47.  
    48.  
    49.             array(
    50.                    "name"=>"Квартиры",
    51.                    "id"=>3,
    52.                     "parent_id"=>2,
    53.                     "has_child"=>"true"
    54.             ),
    55.  
    56.  
    57.             array(
    58.                    "name"=>"Дачи",
    59.                    "id"=>4,
    60.                     "parent_id"=>2,
    61.                     "has_child"=>"false"
    62.             ),
    63.  
    64.              
    65.  
    66.             array(
    67.                    "name"=>"Мобильники",
    68.                    "id"=>6,
    69.                     "parent_id"=>5,
    70.                     "has_child"=>"false"
    71.             ),
    72.  
    73.             array(
    74.                    "name"=>"Компы",
    75.                    "id"=>7,
    76.                     "parent_id"=>5,
    77.                     "has_child"=>"false"
    78.             ),  
    79.  
    80.             array(
    81.                    "name"=>"Техника",
    82.                    "id"=>5,
    83.                     "parent_id"=>1,
    84.                     "has_child"=>"true"
    85.             ),
    86.  
    87.             array(
    88.                    "name"=>"Меню",
    89.                    "id"=>1,
    90.                     "parent_id"=>0,
    91.                     "has_child"=>"true"
    92.             ),
    93.  
    94. );  
    95.  
    96.  
    97. А вот и  композиты
    98.  
    99.     $menu = new Menu("Меню",1);
    100.     $menu->add(new Item("Машины",8));
    101.     $menu->add(new Item("Разное",9));
    102.  
    103.        $texnika =  new Menu("Техника",5);
    104.        $texnika->add(new Items("Компы",7));
    105.        $texnika->add(new Items("Мобильники",6));
    106.  
    107.        
    108.       $nedvijimost = new Menu("Недвижимость",2);
    109.       $nedvijimost->add(new Item("Квартиры",3));
    110.       $nedvijimost->add(new Item("Дачи",4));"
    111.  
    112.    $menu->add($texnika);
    113.     $menu->add($nedvijimost);
    114.     ..........................  
     
  2. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    http://ru.wikipedia.org/wiki/Компоновщик_(шаблон_проектирования)#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80_.D0.BD.D0.B0_PHP5