Used design patterns in this project: (reflected in the tree stucture of this project)
- command pattern (actions that effect the canvas that can de undone and redone)
- composite pattern (Group class that can hold IComponent implementasion that include the Group class) (can be found in components folder)
- decorator pattern
- strategie pattern (strategies are used in the BasicFigure class in the figure folder, ElipseFigure and RectagleFigure do the same without the abstraction)
- visitors pattern (used for effecting selected component(s) on canvas)
- singelton pattern (used on DrawEditor and ComponentList)
A great source for information on design patterns: https://www.tutorialspoint.com/design_pattern/index.htm
Made with Astah
icons used: https://icons8.com/icon/set/line/material