我的困惑!
其實我覺得要實現這道題的功能并不難,但是,怎么樣完美的實現代碼的封裝以及減少代碼量才是我頭疼的...例如對于這種判斷名字和編號是否正確的方法是否可以封裝等等問題。我覺得在測試類里代碼越少越好,最好只要一句話調用一個方法就好了。還有對于業務的分析我感覺也遇到了障礙,從邏輯上來說,選書應該是人的方法,讓人選書是圖書館的方法,我是否應該再創建一個人類,和一個圖書館類?
問題寫得有些混亂,還請高手能詳細替我解答,要是有代碼就更好了,不勝感激!
其實我覺得要實現這道題的功能并不難,但是,怎么樣完美的實現代碼的封裝以及減少代碼量才是我頭疼的...例如對于這種判斷名字和編號是否正確的方法是否可以封裝等等問題。我覺得在測試類里代碼越少越好,最好只要一句話調用一個方法就好了。還有對于業務的分析我感覺也遇到了障礙,從邏輯上來說,選書應該是人的方法,讓人選書是圖書館的方法,我是否應該再創建一個人類,和一個圖書館類?
問題寫得有些混亂,還請高手能詳細替我解答,要是有代碼就更好了,不勝感激!
2015-08-03
舉報
2015-08-04
下面是我個人的理解,參考了老師的代碼,不保證正確性,自由采用。
圖書館借書系統整體上作為一個類對待,其中涉及屬性和方法。
不需要創建人類吧,畢竟這里只需要獲取控制臺的命令,如果是真實的借書系統,可能會涉及到人類的創建,比如學生或者教職工;
這里我們盡量從全局上劃分系統的實現方法,比如:
按照書名選書模塊;
安裝序號選書模塊;
命令接受模塊;
可以發現有了以上三個功能方法,該系統的功能就都實現了。
**盡量把和這些功能相關的組件都封裝到該方法里,而不要放到主調用方法里,主方法只負責接受返回值和處理拋出的異常。**
然后用主方法,分布調用這些模塊,處理這些模塊拋出的異常即可。
2015-08-05
我自己也說亂了,總之我覺得可以把方法里的異常分為兩種類型,
一種可以把異??醋鍪欠椒ㄗ陨韮炔康男ug,可以直接在方法里面處理掉用,
一種可以把異??醋鍪窃摲椒ǖ囊活愄厥夥祷刂?,既然是該方法的特殊返回值,當然應該可以拋給調用者處理,(有三種方式:1,返回值間接拋出;2,通過異常鏈打包拋出;3,直接拋出)
里面可能有講的不對的地方,學習就是試錯
2015-08-05
再比如getBookByName()這個方法,會拋出“圖書不存在異?!?,當然可以在方法內直接處理這個異常,但是處理過程用到了main()里的其他命令,所以還是拋給mian()。