歡迎使用CSDN markdown編輯器

2021-07-14 23:36:24 字數 3001 閱讀 9227

1.m-model:模型 負責業務邏輯,封裝軟體的核心功能如:登入功能,開始考試,交卷等

2.v-view:檢視 負責顯示介面和使用者的互動,呈現使用者的資料狀態,接受使用者請求,介面中只包含顯示邏輯

3.c-controller:控制器 是模型層m和檢視層之間的橋梁,用於控制流程,耦合介面與業務模型,響應使用者請求將請求轉化給業務模型(處理)。根據處理結果更新資料發給檢視介面。控制器中包含介面的控制邏輯(如:介面的顯示和關閉)

1.業務層

2.資料管理層 提供對資料的crud操作,只關心資料操作不涉及業務功能

使用者訪問view,發出請求,請求由控制器處理,控制器請求業務模型完成處理,然後根據處理結果跟新介面

4.任務:登入流程的實現
1).增加業務模型層:

com.tarena.elts.sever.examsever

裡麵包好登入的抽象功能(包括登入成功或失敗)

2).增加業務和介面之間的控制器:

com.tarena.elts.ui.clientcontext

3).新增loginframe登入按鈕的響應事件**

4).在loginframe裡面新增控制器屬性和set方法

5).將loginframe裡面輸入框和密碼框設為全域性屬性,並添

加獲得內容的方法

6).在clientcontext裡面新增loginframe屬性,menuframe屬

性以及他們的set方法

7).回到clientcontext中完成login()方法

1.獲取介面中的id和pwd,

2.呼叫examservice中的login(得到結果)

if成功:更新選單介面,關閉登入介面,顯示選單介面。

else

失敗:捕獲失敗異常,更新登入介面,顯示失敗資訊

8).去loginframe新增noticelabel的全域性屬性,增加顯示noticelabel錯誤

資訊的方法

9).寫測試類,

[1].建立了一些物件,

[2].注入物件

[3].測試

10).通過測試得知,判斷登入的邏輯需在examservice的實現類,

11).建立com.tarena.elts.service.examserviceimpl

[1].繼承自examservice介面(自動重寫login方法).

[2].新增entiycontext屬性和set方法.

[3].完成login方法,

根據id找使用者:

if cant's find,throw exception,

if find id,match password,

if match password right ,create *****,return user

if match password wrong,throw exception

12).修改測試類,建立examservice物件,給examservice這個介面增加乙個set方法,然後注入物件,

[1].在clientcontext中新增介面退出方法

[2].位loginframe的cancelbtn新增事件監聽,在事件中呼叫exit方法

[3].遮蔽了loginframe的視窗關閉按鈕

[4].為loginframe新增windowlistener,重寫windowclosing方法,

一.在menuframe裡面,新增clientcontext屬性,及set方法,給「開始考試」按鈕新增事件(事件中呼叫控制器的start()方法)

二.重構clientcontext類,新增start方法

1.呼叫examservice的start(),同時返回乙個考試資訊,

2.關閉選單介面

3.更新考試介面

4.顯示考試介面

三.重構examservice類,新增start()

1.建立考卷試題,考卷資訊

2.返回考卷資訊(供考試介面呼叫),

四.重構examservice類(供考試介面呼叫),

1.新增examinfo start()

2.新增getquestioninfo(int index),獲取一道考題

五.examserviceimpl

1.重寫examinfo start()

2.重寫getquestioninfo(int index)

3.新增乙個私有的建立考卷的方法create*****(int numbers)

4.建立乙個包含所有考題的集合,list*****

5.新增乙個私有的設定每個考題的分數的方法 setscore()

六.examframe中新增乙個更新介面的方法;

updateview(examinfo e,questioninfo q)

重構:refactoring 通過調整**改善軟體的質量和效能,使其程式的設計模式和架構趨於合理,提高軟體的擴充套件和維護

實體物件和值物件

實體物件:user question

值物件:examinfo qusetioninfo

實體物件有唯一標識,可以進行比較和區分,可以持久化

值物件,乙個具體的值,不需要比較,不需要持久化

過程中遇到的問題,

q1:

listgetoptionstatus()

if (b.isselected())if (c.isselected())if (d.isselected())

return answerslist;

}

q2: 下方的button會隨左邊label的長度大小變化而變化

解決方法:把左右兩邊的label都分別新增進jpanel,然後設定jpanel的預設大小就ok。

然後這差不多就是實訓的筆記和問題,

**在這:

歡迎使用CSDN markdow

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...

歡迎毛毛與妞妞使用CSDN markdown編輯器

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...

歡迎使用CSDN markdow1n編輯器

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...