Run Code  | API  | Code Wall  | Misc  | Feedback  | Login  | Theme  | Privacy  | Patreon 

Composite Design Pattern Demonstration

Language: Layout:
+ ] Compiler args + ] Show input
Compilation time: 1.75 sec, absolute running time: 0.14 sec, cpu time: 0.05 sec, memory peak: 3 Mb, absolute service time: 1,89 sec 
edit mode |  history
=== Objects construction === 
 [TRACE] Create group = groupA
 [TRACE] id = groupA ; Add object = Triangle
 [TRACE] id = groupA ; Add object = Line
 [TRACE] id = groupA ; Add object = Line
 [TRACE] Create group = GroupB
 [TRACE] id = GroupB ; Add object = Triangle
 [TRACE] id = GroupB ; Add object = Triangle
 [TRACE] id = GroupB ; Add object = Line
 [TRACE] id = GroupB ; Add object = Line
 [TRACE] id = GroupB ; Add object = Triangle
 [TRACE] id = groupA; Add object = Group

=== End of object construction === 
Total of elements of groupA = 8
Total of elements of groupB = 5

 [*] ==> Draw group B
 [TRACE] Draw group - id =  GroupB
 [TRACE] Draw triangle - id = triangleB1
 [TRACE] Draw triangle - id = triangleB2
 [TRACE] Draw line - id = LineB1
 [TRACE] Draw line - id = LineB2
 [TRACE] Draw triangle - id = triangleB3

 [*] ==> Rotate group B
 [TRACE] Rotate group - id = GroupB
 [TRACE] Rotate triangle id = triangleB1 angle = 90
 [TRACE] Rotate triangle id = triangleB2 angle = 90
 [TRACE] Rotate line ; id = LineB1; angle = 90
 [TRACE] Rotate line ; id = LineB2; angle = 90
 [TRACE] Rotate triangle id = triangleB3 angle = 90

 [*] ==> Draw group A
 [TRACE] Draw group - id =  groupA
 [TRACE] Draw triangle - id = triangleA1
 [TRACE] Draw line - id = lineA1
 [TRACE] Draw line - id = LineA2
 [TRACE] Draw group - id =  GroupB
 [TRACE] Draw triangle - id = triangleB1
 [TRACE] Draw triangle - id = triangleB2
 [TRACE] Draw line - id = LineB1
 [TRACE] Draw line - id = LineB2
 [TRACE] Draw triangle - id = triangleB3

 [*] ==> Rotate group A
 [TRACE] Rotate group - id = groupA
 [TRACE] Rotate triangle id = triangleA1 angle = 15
 [TRACE] Rotate line ; id = lineA1; angle = 15
 [TRACE] Rotate line ; id = LineA2; angle = 15
 [TRACE] Rotate group - id = GroupB
 [TRACE] Rotate triangle id = triangleB1 angle = 15
 [TRACE] Rotate triangle id = triangleB2 angle = 15
 [TRACE] Rotate line ; id = LineB1; angle = 15
 [TRACE] Rotate line ; id = LineB2; angle = 15
 [TRACE] Rotate triangle id = triangleB3 angle = 15

 [*] ==> Remove objects from group B
 [TRACE] Draw group - id =  groupA
 [TRACE] Draw triangle - id = triangleA1
 [TRACE] Draw line - id = lineA1
 [TRACE] Draw line - id = LineA2
 [TRACE] Draw group - id =  GroupB
=== End of Program ====
 [TRACE] Destroy group - id = << groupA
 [TRACE] Destroy group - id = << GroupB

    
                
λ
.NET NoSQL database for rapid development