亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

我的困惑!

其實我覺得要實現這道題的功能并不難,但是,怎么樣完美的實現代碼的封裝以及減少代碼量才是我頭疼的...例如對于這種判斷名字和編號是否正確的方法是否可以封裝等等問題。我覺得在測試類里代碼越少越好,最好只要一句話調用一個方法就好了。還有對于業務的分析我感覺也遇到了障礙,從邏輯上來說,選書應該是人的方法,讓人選書是圖書館的方法,我是否應該再創建一個人類,和一個圖書館類?

問題寫得有些混亂,還請高手能詳細替我解答,要是有代碼就更好了,不勝感激!

正在回答

3 回答

下面是我個人的理解,參考了老師的代碼,不保證正確性,自由采用。

圖書館借書系統整體上作為一個類對待,其中涉及屬性和方法。

不需要創建人類吧,畢竟這里只需要獲取控制臺的命令,如果是真實的借書系統,可能會涉及到人類的創建,比如學生或者教職工;

這里我們盡量從全局上劃分系統的實現方法,比如:

按照書名選書模塊;

安裝序號選書模塊;

命令接受模塊;

可以發現有了以上三個功能方法,該系統的功能就都實現了。

**盡量把和這些功能相關的組件都封裝到該方法里,而不要放到主調用方法里,主方法只負責接受返回值和處理拋出的異常。**

然后用主方法,分布調用這些模塊,處理這些模塊拋出的異常即可。

0 回復 有任何疑惑可以回復我~
#1

慕斯卡5333890 提問者

你覺得能不能將異常的處理也放在封裝的方法里?這樣好操作嗎?
2015-08-04 回復 有任何疑惑可以回復我~
#2

慕斯卡5333890 提問者

另外很謝謝你的解答,幫助很大
2015-08-04 回復 有任何疑惑可以回復我~
#3

神經曠野舞者 回復 慕斯卡5333890 提問者

java剛學,我把參考老師代碼得出的結論分享下 如果異常自己能處理我個人覺得肯定就自己處理了,但是一個方法里面可能會有多個異常: 除了java內置函數的異常比如數組越界會自動拋出異常(怎么處理,就要手動catch了), 異常也可以自定義這個時候就手動拋出異常
2015-08-05 回復 有任何疑惑可以回復我~
#4

神經曠野舞者 回復 神經曠野舞者

再比如getBookByName()這個方法,會拋出“圖書不存在異常”,當然可以在方法內直接處理這個異常,但是處理過程用到了main()里的其他命令,所以還是拋給mian()。
2015-08-05 回復 有任何疑惑可以回復我~
#5

買買提與三葉草 回復 神經曠野舞者

非常贊同,我也是參考了老師的寫法,磕磕碰碰寫出來的,總體來說,老師的方法封裝的特別好,我的理解是,以后寫異常按照這個思路就好了。1、是java定義的異常,那么就寫try catch語句去捕捉就好了,你可以捕捉到直接處理,也可以封裝好以后拋到上一層,讓上一層調用者來處理。2、自定義異常,那就再方法的開始出先進性throws聲明,然后方法中進行throw異常
2015-08-14 回復 有任何疑惑可以回復我~
查看2條回復

我自己也說亂了,總之我覺得可以把方法里的異常分為兩種類型,
一種可以把異??醋鍪欠椒ㄗ陨韮炔康男ug,可以直接在方法里面處理掉用,
一種可以把異??醋鍪窃摲椒ǖ囊活愄厥夥祷刂?,既然是該方法的特殊返回值,當然應該可以拋給調用者處理,(有三種方式:1,返回值間接拋出;2,通過異常鏈打包拋出;3,直接拋出)
里面可能有講的不對的地方,學習就是試錯

0 回復 有任何疑惑可以回復我~

再比如getBookByName()這個方法,會拋出“圖書不存在異?!?,當然可以在方法內直接處理這個異常,但是處理過程用到了main()里的其他命令,所以還是拋給mian()。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

我的困惑!

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號