Some learning code for Design Pattern, and maybe it is useful for you