mirror of
https://github.com/crazybber/go-pattern-examples.git
synced 2024-11-22 20:06:02 +03:00
30 lines
528 B
Go
30 lines
528 B
Go
|
package composite
|
||
|
|
||
|
func ExampleComposite() {
|
||
|
root := NewComponent(CompositeNode, "root")
|
||
|
c1 := NewComponent(CompositeNode, "c1")
|
||
|
c2 := NewComponent(CompositeNode, "c2")
|
||
|
c3 := NewComponent(CompositeNode, "c3")
|
||
|
|
||
|
l1 := NewComponent(LeafNode, "l1")
|
||
|
l2 := NewComponent(LeafNode, "l2")
|
||
|
l3 := NewComponent(LeafNode, "l3")
|
||
|
|
||
|
root.AddChild(c1)
|
||
|
root.AddChild(c2)
|
||
|
c1.AddChild(c3)
|
||
|
c1.AddChild(l1)
|
||
|
c2.AddChild(l2)
|
||
|
c2.AddChild(l3)
|
||
|
|
||
|
root.Print("")
|
||
|
// Output:
|
||
|
// +root
|
||
|
// +c1
|
||
|
// +c3
|
||
|
// -l1
|
||
|
// +c2
|
||
|
// -l2
|
||
|
// -l3
|
||
|
}
|