designPattern