https://www.cnblogs.com/abcdwxc/archive/2007/10/30/942834.htmlhttps://www.cnblogs.com/zhili/p/DesignPatternSummery.html