<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Flyingis

    Talking and thinking freely !
    Flying in the world of GIS !
    隨筆 - 156, 文章 - 16, 評(píng)論 - 589, 引用 - 0
    數(shù)據(jù)加載中……

    MVC的一幅簡(jiǎn)單素描

    ?作者:Flyingis

    ?

    素描工具: Struts + Hibernate 3

    素描對(duì)象:一個(gè)足夠簡(jiǎn)單的基于 MVC Web 應(yīng)用

    目的:使用 Struts 分離業(yè)務(wù)邏輯與表現(xiàn),使用 Hibernate 分離數(shù)據(jù)操作與業(yè)務(wù)邏輯,整理一種基本的 MVC 開(kāi)發(fā)思路。

    ?

    1. 素描框架
    ?

    ??? 該素描主要體現(xiàn)在系統(tǒng)層次的功能劃分,系統(tǒng)結(jié)構(gòu)的組織與設(shè)計(jì)上,素描足夠簡(jiǎn)單,數(shù)據(jù)庫(kù)中只涉及一張表:

    ??? 學(xué)生信息(學(xué)生編號(hào)、姓名、性別、年齡、專業(yè)信息)--Student( id, name, gender, age, specialty_id )

    • 系統(tǒng)設(shè)計(jì)

    ??? 公共類的設(shè)計(jì)與實(shí)現(xiàn)

    ??? 各模塊的詳細(xì)設(shè)計(jì),主要描述一個(gè)基本的 CRUD 操作,以及對(duì)象數(shù)據(jù)傳遞

    • 系統(tǒng)的部署、測(cè)試與發(fā)布

    2. 公共類設(shè)計(jì)
    ?

    ??? 基本的 CRUD 操作封裝在基本的幫助類 HibernateHelper 中,實(shí)現(xiàn) Object load(Class theClass, java.io.Serializable id) Query createQuery(String queryString) void setQueryParameter(Query query, String name, Object val) List list(Query query) void save(Object o) void update(Object o) void delete(Object o) void saveOrUpdate(Object o) 等這些基本方法。
    ?

    ??? 常量單獨(dú)封裝在 Constants 類中。

    ?

    3. 各種對(duì)象設(shè)計(jì)

    • ActionForm:StudentForm-- 用于視圖層與控制層之間傳遞數(shù)據(jù)。
    • 接口 StudentIf-- 實(shí)現(xiàn)了學(xué)生數(shù)據(jù)對(duì)象 Bean 所需要的所有接口方法。
    • 學(xué)生數(shù)據(jù)對(duì)象 StudentData-- 實(shí)現(xiàn)了記錄學(xué)生對(duì)象數(shù)據(jù)的功能,并可以用作數(shù)據(jù)交互的傳輸對(duì)象,它實(shí)現(xiàn)了接口 Serializable StudentIf
    • 學(xué)生實(shí)體 Bean StudentBean-- 實(shí)現(xiàn)了學(xué)生實(shí)體的所有屬性,它實(shí)現(xiàn)了接口 Serializable StudentIf

    4. 對(duì)象管理實(shí)現(xiàn)類
    ?

    ??? 業(yè)務(wù)邏輯處理為項(xiàng)目的核心,直接關(guān)系到項(xiàng)目是否符合用戶需求。因此,我們可以單獨(dú)設(shè)計(jì)一個(gè)對(duì)象管理實(shí)現(xiàn)類 ManagerFacade,定義處理業(yè)務(wù)對(duì)象的CRUD操作,以增加學(xué)生信息為例public StudentIf addStudent(StudentIf student)。學(xué)生數(shù)據(jù)對(duì)象StudentDataAction中通過(guò)StudentForm接收到表現(xiàn)層傳入的數(shù)據(jù),然后作為ManagerFacade對(duì)象的addStudent方法的參數(shù)傳入方法內(nèi),在方法體內(nèi)聲明學(xué)生實(shí)體StudentBean的一個(gè)對(duì)象,將學(xué)生數(shù)據(jù)對(duì)象即傳入?yún)?shù)中的屬性值賦給實(shí)體對(duì)象,然后調(diào)用公共類HibernateHelper的save方法完成數(shù)據(jù)庫(kù)操作。其他基本操作與此類似,這樣設(shè)計(jì)似乎對(duì)象較多,但各層之間分工明確,有利于降藕。

    ??? 另外,在數(shù)據(jù)傳遞過(guò)程中,還會(huì)涉及到數(shù)據(jù)類型的轉(zhuǎn)換,可以專門(mén)設(shè)計(jì)幫助類來(lái)完成。

    ?

    5. 頁(yè)面 UI 設(shè)計(jì)
    ?

    ??? 除了設(shè)計(jì)美觀的頁(yè)面外,最重要的是頁(yè)面結(jié)構(gòu)要符合項(xiàng)目需要,并提供一定的使用體驗(yàn),有時(shí)候簡(jiǎn)單實(shí)用就是最好。如果可以對(duì)用戶瀏覽器統(tǒng)一規(guī)范要求,或是基本不會(huì)屏蔽 Javascript ,數(shù)據(jù)格式的控制可以放在客戶端用 Javascript 實(shí)現(xiàn)。

    ?

    6. 系統(tǒng)的部署、測(cè)試與發(fā)布。

    posted on 2006-03-27 17:50 Flyingis 閱讀(2623) 評(píng)論(6)  編輯  收藏 所屬分類: Web 框架與開(kāi)發(fā)

    評(píng)論

    # re: MVC的一幅簡(jiǎn)單素描  回復(fù)  更多評(píng)論   

    基本上看不出mvc
    2006-03-27 18:23 | good

    # re: MVC的一幅簡(jiǎn)單素描  回復(fù)  更多評(píng)論   

    在這個(gè)場(chǎng)景中,StudentForm是VO,StudentBean是可以被持久化的實(shí)體對(duì)象,即PO,StudentData在這里主要起到BO的作用,但不包括業(yè)務(wù)邏輯,業(yè)務(wù)邏輯從BO中分離出來(lái),單獨(dú)封裝在對(duì)象管理的一個(gè)類中,這樣便于對(duì)象間的解耦和分離,文中描述的是各對(duì)象之間相互銜接作用的一種簡(jiǎn)單的方式,看了很多高手的大作和討論,理論性特別強(qiáng),因此通過(guò)一個(gè)簡(jiǎn)單的實(shí)例描述了一種傳輸方式。
    以前對(duì)這些概念比較模糊,現(xiàn)在也在學(xué)習(xí)中,請(qǐng)多指教。
    2006-03-27 21:34 | Flyingis

    # re: MVC的一幅簡(jiǎn)單素描  回復(fù)  更多評(píng)論   

    以前在NEC系統(tǒng)集成工作的時(shí)候,開(kāi)發(fā)web程序用的是小日本的自己框架,小日本很狂妄的說(shuō),這個(gè)框架你們很難理解的,后來(lái)一看,標(biāo)準(zhǔn)的mvc模式

    過(guò)了一年,用了structs,發(fā)現(xiàn)小日本框架就是個(gè)簡(jiǎn)化版的structs

    MVC模式經(jīng)久不衰


    歡迎訪問(wèn):http://www.shuangzixing.net
    2006-03-28 20:40 | fanse

    # re: MVC的一幅簡(jiǎn)單素描  回復(fù)  更多評(píng)論   

    bgchd e ghdtrhg aa
    2006-04-19 12:02 | zhangxiuxiu

    # re: MVC的一幅簡(jiǎn)單素描  回復(fù)  更多評(píng)論   

    @Flyingis
    請(qǐng)教:
    Struts , Hibernate在.net環(huán)境,VC++環(huán)境的對(duì)應(yīng)框架有哪些?
    2007-05-24 08:51 | flyingfish

    # re: MVC的一幅簡(jiǎn)單素描  回復(fù)  更多評(píng)論   

    @flyingfish
    VC++很少應(yīng)用于Web應(yīng)用開(kāi)發(fā),.Net框架中的主流web開(kāi)發(fā)語(yǔ)言是vb.net和c#。
    由于Java開(kāi)源的本質(zhì),其MVC框架往往有多種選擇,但.net框架中就只有asp.net可以選擇,簡(jiǎn)單易用,最明顯的不足是不能跨平臺(tái)部署。
    Hibernate在.net中有Nhibernate可以選擇,后者生于前者。
    2007-05-24 22:40 | Flyingis
    主站蜘蛛池模板: 国产97视频人人做人人爱免费| 内射无码专区久久亚洲| 七次郎成人免费线路视频| 亚洲人成网站免费播放| 中文字幕免费在线看电影大全 | 亚洲18在线天美| 国产亚洲av片在线观看播放| 免费无码毛片一区二区APP| 日产久久强奸免费的看| 亚洲色无码专区一区| 亚洲精品卡2卡3卡4卡5卡区| 国产免费人成在线视频| 国内少妇偷人精品视频免费| 免费精品视频在线| 亚洲av成人一区二区三区观看在线 | 国产成人无码免费视频97 | 2020国产精品亚洲综合网| 亚洲国产精品狼友中文久久久| 成人免费午夜视频| 免费精品一区二区三区第35 | 免费国产怡红院在线观看| 高清一区二区三区免费视频| fc2免费人成在线| 免费一级毛片在线播放放视频| 亚洲av无码专区青青草原| 亚洲欧美日韩久久精品| 亚洲丝袜美腿视频| 亚洲av激情无码专区在线播放 | 中文字幕无码一区二区免费| 亚洲中文字幕无码爆乳app| 亚洲国产成人手机在线电影bd| 久久久久噜噜噜亚洲熟女综合| 男女超爽刺激视频免费播放| 中文免费观看视频网站| 青青操免费在线观看| 理论亚洲区美一区二区三区 | 成年人视频在线观看免费| 免费看国产精品3a黄的视频| 免费人成黄页在线观看日本| 黄色片免费在线观看| 先锋影音资源片午夜在线观看视频免费播放|