http://m.myexception.cn/software-architecture-design/639907.html
http://blog.csdn.net/jubincn/article/details/9115205