Add state Pattern
Add abstract factory pattern
Merge branch 'Add_Pattern_Example' into develop