design pattern(1) 8.6