Я пытаюсь стать лучше с шаблонами ООП.
У меня есть класс, который генерирует XML для набора данных.У него разные методы для разных тел XML, но каждый XML имеет одинаковый заголовок, и каждый метод должен возвращать XML в виде строки.
Я создал приватную функцию, которая создает заголовок и возвращает XML-объект, где конкретный метод get добавляет свои дочерние узлы в соответствии с потребностями.Я сделал приватную функцию, которая украшает XML (если установлен) и закрывает его блоком «нижнего колонтитула» по умолчанию.
Я размышляю, есть ли шаблон для его оптимизации и убедитесь, что оба init_xml иprepeare_xml всегда вызываются в начале и в конце каждого открытого метода.Можно ли построить класс таким образом, чтобы каждый открытый вызов метода вызывал 1-й метод заголовка и после добавления дочерних узлов метод нижнего колонтитула?
Есть один метод get_xml ($ type, $ data), которыйвызывает конкретные методы get _? _ xml в соответствии с $ type?Или есть лучший образец?
Надеюсь, этот пример имеет смысл
class Foo{
private $xml;
public function get_bar_xml($data){
$this->xml = $this->init_xml();
foreach($data as $key => $value){
$this->xml->addChild(key, $value);
}
return $this->prepare_xml();
}
//... set of similar methods following with different
// child node creation
private function init_xml(){
//$this->xml header generation
}
private function prepare_xml(){
//add footer nodes to $this->xml
//format output if neccesary
return $this->xml;
}
}