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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何解決龐大臃腫的service層

如何解決龐大臃腫的service層

白豬掌柜的 2019-03-01 10:48:04
業務代碼寫的太多了導致過于臃腫,請問怎么解決?或者使用哪種設計模式
查看完整描述

5 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

哪種設計模式……恐怕搞不定,23種設計模塊估計你需要用到近一半

如果 Service 層太臃腫,可以考慮層次細分,甚至可以把平面分層改為樹型分層(分子系統或模塊)。

如果要減少代碼,可以通過重構和設計模式把重復代碼去掉,但是分層和模塊本身會增加代碼量。所以最終結果可能并不會減少代碼量,但是層次結構會更清晰。

以閱讀為目的進行重構,再通過測試和分析對部分地方進行性能優化——說起來簡單,做起來還是很累人的

查看完整回答
反對 回復 2019-03-01
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

既然覺得臃腫,那么就要對應的'瘦身'啊

  • 不要把所有的API都寫在service層,可以根據代碼邏輯劃分一些到dao層或者util

  • 嘗試著一些面向對象,將某一類的代碼寫到某一類的service中,這樣某一類的service應該不會很龐大

  • 增加覆用,少些重復的代碼,可以通過繼承和封裝等手段,Don't repeat youself

查看完整回答
反對 回復 2019-03-01
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

1、將臃腫的service類拆分成更細的service類
2、盡量不要寫超復雜的方法:比如方法F要做A,B,C三件事,那就將A,B,C三件事都抽象出來單獨寫一個方法,由F方法調用A,B,C三個方法,這樣F方法就瘦身了
3、service類盡量只做邏輯處理,對于功能性的方法(比如http請求,比如空值判斷)將其封裝到公共方法中,例如util類。
4、盡量將通用方法抽象出來放到基類BaseService中,比如基礎的search,create,update,delete等。

事實上,像eclipse和idea這些現代IDE都有優化提示的功能,就是那惹人生厭的黃色警告。如果你將黃色警告都解決了的話,上面的問題起碼能避免一半

查看完整回答
反對 回復 2019-03-01
?
米脂

TA貢獻1836條經驗 獲得超3個贊

請遵守SOLID原則寫代碼

查看完整回答
反對 回復 2019-03-01
?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

如果單個項目過于龐大,拆分成多個項目是必然的,但要分幾個階段:

  1. 界面展示和業務邏輯分離。將項目拆分成 Web 應用和服務,Web 應用調用服務獲得要展示的動態內容。

  2. 如果上面拆分后服務項目仍然過于龐大,就需要按業務領域拆分。比如用戶服務、產品服務、社交服務、工單流等等,分開來。這一步要十分謹慎。

查看完整回答
反對 回復 2019-03-01
  • 5 回答
  • 0 關注
  • 1123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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