this is my notes of learning design pattern