編碼複雜度C(n):在MVC編程中,通常會涉及到action,service,dao,model(實體)。當用面向對象方式操做一個DB表時,要寫一份dao;當操做兩個表時,要寫兩份dao;當操做n個表時,要寫n份dao;則此時編碼的複雜度會隨着問題規模增加爲n,編碼複雜度也變成n。關於問題n的編碼複雜度(Coding Complexity)用C(n)表示。則上面描述問題的編碼複雜度爲:C(n)=O(n)。git
流程的Hibernate,Mybatis的編碼複雜度C(n)=O(n)。對於每一個實體,須要寫一個dao接口文件。編碼複雜度C(n)=O(n),即會隨實體的增加,編碼量呈線性增加。當n較大時,會增長許多人力物力消耗。github
編碼複雜度C(n)=O(1)的ORM框架,如Bee。 ORM操做DB的工做量由n變1,生產率由1變n。編程
編碼複雜度也如時間複雜度和空間複雜度(計算機領域中數據結構研究的兩個重要問題)那樣,從O(n)變爲O(1)對性能、效率提高是很明顯的。數據結構
Bee的源碼網址:mvc
https://github.com/automvc/bee 框架
碼雲上的地址:性能