add new design pattern learning notes