new post：design pattern