?????????先說一下openfans最早版本的整體設計。首先是用Equinox直接new出項目來,它默認是springmvc+spring+hibernate再加-上一些常用的組件,如sitemesh,common-validator,dwr等。而這些都是我們想要的。?
?????????有了這個大的框架,我們可以進行業務建模了,我們采用的是領域模型驅動的設計方案。首先考慮的是對象以及對象間的關聯,我們也沒用什么建模工具和自動生成工具,-先自己寫java類,寫好屬性,用eclipse生成get和set。然后手寫hibernate的hbm配置文件,有點土,這也是我第一正式的使用hiber-nate。開始我用了dao模式,寫了好多dao,后來和oofrank討論,一直認為hibernate就是我們的持久層,完全沒有必要為了移植性(如將來使-用ibatis)而引入dao。所以拋棄了dao模式,而由一個fa?ade處理持久。這樣的設計跟一般的三層模型略有不同,hibernate就是我們的持久-層,然后通過一個fa?ade提供對上層的接口。領域模型和mvc中的c充當我們的業務層。我們的對象不是貧血模型,而是有能力的。當然現在這種能力更多是對象-間的關聯,而對持久層無能為力,但也已經方便了很多。Controller現在具有較多的功能,它能調領域對象,也能直接使用fa?ade。然后是jsp+js-tl+el做純粹的展現層。C和V的分類原則是這樣的:一類是查看,一類是form提交。所有查看由一個viewController統一處理(這樣增加了一些-耦合,但效果還可以),一個對象的增、刪、改由一個formController處理。?
???????????有了這些設計原則,做起來倒是很快,幾天就核心功能出來了。對于數據庫,只要建一個庫就行,其余的如建表,改表等都由hibernate來自動幫你完成,數據庫-就是在寫hbm時關心下,其它完全對我們透明,感覺還是挺爽的。?最初版一共就20幾個類,完成了很多的功能,可以具體看
www.openfans.org???????????下一篇寫怎么使用maven和tomcat,讓openfans在自己機器上跑起來。先去吃飯了,^_^。大家有任何疑問和好的改進意見,都可以提,跟帖。