Add serveral design pattern
Add design pattern: prototype