標籤:體會 介面 網路 close depend lin 通用 寫代碼 src
北京電子科技學院(BESTI)
實 驗 報 告
課程: 程式設計與資料結構 班級: 1623 姓名: 齊力鋒 學號: 20162326
成績: 指導教師: 婁嘉鵬/王志強 實驗日期: 2017年4月14日
實驗密級:非密級 預習程度: 優良 實驗時間: 2 Hours
儀器組次: 必修/選修: 必修 實驗序號: 01
實驗名稱:
Java物件導向程式設計
實驗目的與要求:
1.沒有Linux基礎的同學建議先學習《Linux基礎入門(新版)》《Vim編輯器》 課程2.完成實驗、撰寫實驗報告,實驗報告以部落格方式發表在部落格園,注意實驗報告重點是
運行結果,遇到的
問題(工具尋找,安裝,使用,程式的編輯,調試,運行等)、
解決辦法(空洞的方法如“查網路”、“問同學”、“看書”等一律得0分)以及
分析(從中可以得到什麼啟示,有什麼收穫,教訓等)。報告可以參考範飛龍老師的指導3. 嚴禁抄襲,有該行為者實驗成績歸零,並附加其他懲罰措施。4.
請大家先在實驗樓中的~/Code目錄中用自己的學號建立一個目錄,代碼和UML圖要放到這個目錄中,中沒有學號的會要求重做,然後跟著下面的步驟練習。
實驗內容、步驟與體會:
1. 初步掌握單元測試和TDD2. 理解並掌握物件導向三要素:封裝、繼承、多態3. 初步掌握UML建模4. 熟悉S.O.L.I.D原則5. 瞭解設計模式
體會:做中學,多練多思考
(一)設計模式初步(1)S.O.L.I.D原則
- SRP(Single Responsibility Principle,單一職責原則)
- OCP(Open-Closed Principle,開放-封閉原則)
- LSP(Liskov Substitusion Principle,Liskov替換原則)
- ISP(Interface Segregation Principle,介面分離原則)
- DIP(Dependency Inversion Principle,依賴倒置原則)
- 我們看到通過增加了一層抽象層使代碼符合了OCP原則。代碼有良好的可擴充性、可維護性,代價是代碼多了,效率變低下了。
設計模式初學者容易過度使用它們,導致過度設計,也就是說,遵守DRY和OCP當然好,但會出現YAGNI(You aren‘t gonna need it, 你不會需要它)問題。
DRY原則和YAGNI原則並非完全相容。前者追求"抽象化",要求找到通用的解決方案;後者追求"快和省",意味著不要把精力放在抽象化上面,因為很可能"你不會需要它"。怎麼平衡呢?
有一個Rule of three (三次原則):第一次用到某個功能時,你寫一個特定的解決方案;第二次又用到的時候,你拷貝上一次的代碼(違反了DRY);第三次出現的時候,你才著手"抽象化",寫出通用的解決方案。
(二)、單元測試 提交最後三個測試案例都通過的
- 當你們想用程式解決問題時,要會寫三種碼:虛擬碼、產品代碼、測試代碼,本次實驗的目的就是讓我們養成這樣寫代碼的好習慣,先寫虛擬碼,再用特定的程式設計語言翻譯一下就是產品代碼,最後寫測試代碼來檢測產品代碼是否存在問題和漏洞。
- 附上測試
2062326 齊力鋒 實驗二《Java物件導向程式設計》實驗報告