OO 设计的其中三个原则:
封装变化
http://blog.youkuaiyun.com/nuaalfm/archive/2007/10/04/1811097.aspx
多用组合,少用继承
http://hi.baidu.com/blueman/blog/item/7a0618174a8928044b90a768.html
对接口编程而不对类编程
http://hi.baidu.com/girlzhaoyl/blog/item/da71a7a7926f2693d14358dd.html