国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

《Spring+Struts+iBatis程序設(shè)計》課程的游戲案例教學(xué)法

2016-01-21 22:10林淑飛
教育教學(xué)論壇 2015年40期
關(guān)鍵詞:案例游戲

林淑飛

摘要:通常,《Spring+Struts+iBatis程序設(shè)計》課程使用企業(yè)級項目做教學(xué)案例,業(yè)務(wù)復(fù)雜的企業(yè)級項目案例會影響學(xué)生對教學(xué)內(nèi)容的學(xué)習(xí)。游戲業(yè)務(wù)簡單且有趣,不但能激發(fā)學(xué)生的學(xué)習(xí)興趣而且不會打擊學(xué)生的自信心。本文使用掃雷游戲做教學(xué)案例,使用Spring+Struts+iBatis開發(fā)掃雷游戲的同時來講授Spring+Struts+iBatis理論知識。文中具體介紹了游戲案例教學(xué)法的實施過程,講授Spring部分時做游戲的業(yè)務(wù)層,講授iBatis部分時做游戲的持久層,講授Struts部分時做游戲的展示層。此方法已進行過兩輪的教學(xué)實踐,效果較好。

關(guān)鍵詞:游戲;掃雷游戲;Spring Struts iBatis教學(xué)方法;案例

中圖分類號:G642.0 文獻(xiàn)標(biāo)志碼:A 文章編號:1674-9324(2015)40-0182-03

一、引言

Spring、Struts和iBatis都是企業(yè)級開源框架,對學(xué)生就業(yè)很有幫助,但不好掌握,因此案例教學(xué)法很有必要。游戲案例業(yè)務(wù)簡單,而且易于激發(fā)學(xué)生的學(xué)習(xí)興趣。將一個簡單的游戲開發(fā)貫穿于Spring+Struts+iBatis(以下簡稱“SSI”)程序設(shè)計的教學(xué)中,即邊帶著學(xué)生開發(fā)游戲邊講授SSI重要知識點的原理和應(yīng)用,這就是本文的游戲案例教學(xué)法。

下面說明掃雷游戲案例教學(xué)法的實施過程,即給出以掃雷游戲的開發(fā)為輔、講解SSI為主的教學(xué)過程。

二、教學(xué)方法實施過程簡介

(一)講解Spring部分

Spring的核心技術(shù)是IOC和AOP[1,2]。因為IOC和AOP的底層技術(shù)是反射機制,所以需用2課時來講解java的反射機制,再用2課時講解IoC和AOP的概念,最后將IoC和AOP應(yīng)用到掃雷游戲中。在掃雷游戲中,類Pair表示按鈕的位置,類ThunderButton表示按鈕,類DengJi表示游戲的級別,ThunderButtonLayout表示和類DengJi有關(guān)的按鈕布局。領(lǐng)域類User、Log分別表示玩家和成績統(tǒng)計。

DengJi類應(yīng)只有4個對象,分別是初級、中級、高級和自定義,都交給SpringIoc容器管理。前3個對象成員變量的值是固定的,第4個自定義等級是玩家在游戲進行時才能確定的,所以通過IoC容器引用屬性文件中的值來實現(xiàn)。

GameStyle表示游戲的外觀,主要指按鈕和雷的外觀。如果按鈕有3種樣式,雷有2種樣式,那么共有6種外觀,就在SpringIoC容器中放6個GameStyle對象。為了講解SpringIoC對集合的管理,可以將GameStyle的6個對象放到集合里。

ThunderButton的結(jié)構(gòu)如下:

public class ThunderButton extends JLabel{

//定義成員變量,如按鈕的位置、按鈕外觀、所屬窗口等

public ThunderButton(){ }

public int begin(){ //在這里設(shè)置按鈕的一些屬性值,方法返回值表示已找到的雷數(shù)}

}

使用AOP的環(huán)繞增強技術(shù)將按鈕的鼠標(biāo)左擊、右擊和雙擊事件處理植入到ThunderButton的begin方法中,順勢講SpringAOP的原理及使用。鼠標(biāo)雙擊某數(shù)字按鈕可獲得此按鈕周圍雷的位置提示。

當(dāng)單擊窗口的關(guān)閉鍵、結(jié)束按鈕或結(jié)束菜單項想要退出游戲時,都有確認(rèn)提醒,即“游戲正進行,您希望做什么?保存、不保存或是取消”,這可以使用Spring AOP的后置增強來實現(xiàn)。若游戲已開始就植入增強,若游戲沒有開始就不植入增強,這是有條件的植入增強。

當(dāng)游戲結(jié)束時,不管是由于成功,還是由于踩雷,或是由于時間到了,必須要記錄游戲的結(jié)果,這可以使用SpringAOP的前置增強來完成。

當(dāng)單擊“新游戲”菜單項或當(dāng)游戲失敗了,都會出現(xiàn)“開始一個新的游戲”和“重新開始這個游戲”兩個選項,這時就可使用AOP的引介增強了。這兩個選項的不同之處是后者需要保存當(dāng)前游戲中雷的位置,并在新游戲中應(yīng)用。可以將這兩個選項的實現(xiàn)放在同一個方法中,在此方法中植入“保存當(dāng)前游戲的雷的位置”的功能,并設(shè)置是否開啟此功能的開關(guān),這正是引介增強所能實現(xiàn)的。

Spring支持基于XML配置的AOP、基于Schema配置的AOP以及基于@AspectJ注解的AOP,我們課堂上用基于XML配置AOP,其余兩個使用很簡單,讓學(xué)生課下自學(xué)。

(二)講解iBatis部分

[3]iBatis是對JDBC操作一定程度上的封裝。它的核心是映射文件和接口SqlMapClient。映射文件的作用是指出有映射關(guān)系的類和數(shù)據(jù)表,并定義一些SQL語句。接口SqlMapClient具有SQL執(zhí)行、批處理和事物處理的能力。為了講解iBatis,我們給掃雷游戲提供了以下功能:登錄,注冊,統(tǒng)計當(dāng)前玩家每個游戲等級最好的5次成績,對每個游戲等級從所有玩家中找出前5名,游戲結(jié)束時除了顯示游戲成敗外還顯示當(dāng)前玩家等級游戲的總次數(shù)、成功次數(shù)、成功率、連續(xù)成功次數(shù)、連續(xù)失敗次數(shù)、最好成績及其取得的時間。我們可邊實現(xiàn)這些功能邊講授iBatis。

首先搭建數(shù)據(jù)庫,準(zhǔn)備實體類和實體類對應(yīng)的映射文件。實體類有User和Log,分別表示玩家和日志,它們對應(yīng)的數(shù)據(jù)表分別為user和log。接著根據(jù)游戲的業(yè)務(wù)需求,分別為兩個實體類定義對應(yīng)的映射文件User.xml和Log.xml。最后來準(zhǔn)備UserDao(接口)、UserDaoImpl(實現(xiàn)類)、LogDao(接口)、LogDaoImpl(實現(xiàn)類),對數(shù)據(jù)表有什么操作它們就有什么方法。比如,LogDao有如下方法:

void save(Log log);

List

猜你喜歡
案例游戲
案例4 奔跑吧,少年!
隨機變量分布及統(tǒng)計案例拔高卷
發(fā)生在你我身邊的那些治超案例
爆笑游戲
一個模擬案例引發(fā)的多重思考