天天看點

[進階軟體工程教學]個人第4次作業評分

一、作業位址:

https://edu.cnblogs.com/campus/fzu/AdvancedSoftwareEngineering/homework/1302

二、作業評分

規則:

  • 篇部落格随筆;(5 points)
  • 每題的解答包括:類圖(5 points)、關鍵類java源碼及注釋(6 points);(每題11 points)

評分:

學号 B1 T1-1 T1-2 T2-1 T2-2 T3-1 T3-2 T4-1 T4-2 T5-1 T5-2 總分
*320034 5 6 5.5 58.5
*320036 2.5 3 52.5
*320053 58
*320074 4.5
*320075 4 54
*320076 59
*320077 5+3 59.5
*320078 47.5
*320079
*327033
*327037 52
*327041
*327078 48
*327109
*327112
*327010 3.5 50

B1:部落格評分

Tn-1:類圖得分

Tn-2:關鍵類java源碼及注釋得分

三、總結

1、相對于上次作業總結中提出的類圖中類、接口以及類之間的連接配接線問題,本次作業中得到很大改善。

2、有些同學的所有模式中,都沒有測試類(或Client)。對于作業中的某些具體問題,如果沒有寫測試類,無法描述清楚題目中的問題,如下面兩題:

第三題:某系統提供一個資料加密功能,可以對字元串進行加密。最簡單的加密算法通過對字母進行移位來實作,同時還提供稍複雜的逆向輸出加密,還提供更為進階的求模加密。使用者首先使用最簡單的加密算法對字元串進行加密,如果覺得還不夠可以對加密後的結果使用其他的加密算法進行二次加密,當然也可以進行第三次加密。使用Decrator模式來設計。
第五題:某論壇已注冊使用者和遊客的權限不同,已注冊使用者擁有發帖、修改自己的注冊資訊等功能;遊客隻能看别人的文章,沒有其他權限。使用Proxy模式來設計。

(1)如果在第三題中,沒有測試類,如何實作題目要求的二次加密,三次加密過程?

(2)在第五題中,通過撰寫具體的測試類,可以對代理模式具體如何工作,如何通過代理類去實作代理功能等方面有更直覺的了解。

(3)這兩種模式很容易被混淆,他們之間明顯的差別,展現在Client實作的過程中[1]。

注:第三次設計模式作業,所有模式都要求寫測試類。

3、這次作業中,第三題的Decrator模式[2]和第五題的Proxy模式[3,4]出現了比較多的問題。針對每個同學出現的具體問題,助教都有在你們的部落格下面點評,希望各位同學結合點評查閱相關資料修正類圖和代碼。若有不同的意見,可以在班級群裡交流或者向助教、老師提出疑問。下面是這兩個模式作業完成比較好的同學,大家可以參考:

  • 第三題的Decrator模式 [林洋洋][http://www.cnblogs.com/bugLoser/p/7812095.html]
  • 第五題的Proxy模式[周靜平][http://www.cnblogs.com/zjp17/p/7832454.html]

4、在設計模式學習過程中,類比、歸納、總結是一種高效的方法

(1)擴充卡模式、裝飾者模式、代理模式、中介模式[5]

(2)工廠模式、抽象工廠模式、建造者模式

例如上面(1)和(2)中的這兩組設計模式。每組内的設計模式之間有何差別和聯系?這些模式具體是什麼?用于哪些場景?

通過總結可以更全面地了解這些設計模式。

引用:

[1]http://www.cnblogs.com/jaredlam/archive/2011/11/08/2241089.html

[2]https://www.cnblogs.com/jiqing9006/p/5962431.html

[3]https://www.cnblogs.com/whoislcj/p/5693980.html

[4]https://www.cnblogs.com/cenyu/p/6289209.html

[5]http://blog.csdn.net/lulei9876/article/details/39994825