add new design patterns

add new design patterns