http://blog.gusibi.com/post/python-design-patter-factory-method/ https://www.jianshu.com/p/a64000c5a4ac