никак не могу решиться что выбрать
в общих чертах хочу сделать получение подразделов некоего раздела через итератор (выборка из базы уже работает через итератор)
тоесть заминка собсно в выборе "интерфейса"
допустим есть некий раздел с каким то там ID $oDir
вот я хочу получить всех его потомков, причем так чтоб их можно было перебрать через foreach( as ){}
и вот тут вопрос, дело в том что интерфейс итератора можно реализовать в классе объекта Dir() а можно создать еще 1 класс, типа CDirIterator в котором и реализовать интерфейс итератора
первый вариант позволяет обойтись без лишних сущностей (не надо создавать класс CDirIterator и не будет проблем с его работой) но с другой стороны если для класса Dir реализовать интерфейс итератора, то для его использования нужно сначало покурить маны этого класса (тоесть курить их после каждого долгого не использования)
если реализовать итератор в Dir, то работа с ним будет выглядеть:
если вводить еще класс итератор то тогда это будет выглядеть:
внешне разница не большая, и второй вариант выглядит корректней
но:
прошу всех кто понял навести на умную мысль.(Отредактировано автором: 27 Сентября, 2013 - 12:38:06)
|