라이브러리
[PHP] CommonMarkNode::accept - 방문
CommonMarkNode::accept
CommonMarkNode는 Markdown 문법을 분석하고 처리하는 데 사용되는 클래스입니다. accept 메서드는 Visitor 패턴을 구현하기 위해 사용됩니다. Visitor 패턴은 객체의 내부 구조를 변경하지 않고, 객체를 방문하고 처리하는 데 사용됩니다.
Visitor 패턴
Visitor 패턴은 다음과 같은 목적을 가진 패턴입니다.
- 객체의 내부 구조를 변경하지 않고, 객체를 방문하고 처리하는 데 사용됩니다.
- 객체의 내부 구조를 변경하지 않고, 객체를 처리하는 데 사용됩니다.
CommonMarkNode::accept 예제
#hostingforum.kr
php
// CommonMarkNode.php
class CommonMarkNode {
private $children;
public function __construct($children = null) {
$this->children = $children ?: [];
}
public function accept(Visitor $visitor) {
foreach ($this->children as $child) {
$child->accept($visitor);
}
$visitor->visit($this);
}
}
// Visitor.php
interface Visitor {
public function visit(CommonMarkNode $node);
}
// ConcreteVisitor.php
class ConcreteVisitor implements Visitor {
public function visit(CommonMarkNode $node) {
echo "Visiting node: " . get_class($node) . "
";
}
}
// Example.php
class Example {
public function main() {
$node = new CommonMarkNode([
new CommonMarkNode(),
new CommonMarkNode(),
]);
$visitor = new ConcreteVisitor();
$node->accept($visitor);
}
}
$example = new Example();
$example->main();
예제 설명
위의 예제에서는 CommonMarkNode 클래스가 accept 메서드를 구현하고 있습니다. accept 메서드는 Visitor 인터페이스를 구현한 ConcreteVisitor 클래스의 visit 메서드를 호출합니다.
ConcreteVisitor 클래스는 visit 메서드를 구현하고 있습니다. 이 메서드는 CommonMarkNode 객체를 방문하고 처리합니다.
Example 클래스는 main 메서드를 구현하고 있습니다. 이 메서드는 CommonMarkNode 객체를 생성하고, ConcreteVisitor 클래스의 인스턴스를 생성한 후 accept 메서드를 호출합니다.
결과
#hostingforum.kr
Visiting node: CommonMarkNode
Visiting node: CommonMarkNode
Visiting node: CommonMarkNode
결론
CommonMarkNode::accept 메서드는 Visitor 패턴을 구현하기 위해 사용됩니다. accept 메서드는 Visitor 인터페이스를 구현한 클래스의 visit 메서드를 호출합니다. 이 패턴은 객체의 내부 구조를 변경하지 않고, 객체를 방문하고 처리하는 데 사용됩니다.
댓글목록
등록된 댓글이 없습니다.