最近接手公司服務端接口的相關(guān)編寫工作,遇到了一些問題,提出了一些想法,討論了一些問題,與項目經(jīng)理在方案選擇上有了一番爭吵(當然,這種爭吵是家常便飯的事兒)。特此有了一些心得體會。
方法入?yún)⒌脑O計
我們在設計程序的時候,如果使用常規(guī)的分層模型,既Controller、Service、Dao,來對項目進行分層,一定會遇到一個問題,就是不同層及之間,數(shù)據(jù)傳遞,即每個方法的“入?yún)ⅰ睉撛趺丛O計。
我曾待在一家從事銀行系統(tǒng)開發(fā)的公司,項目有一個很大的特點,它并非使用C、S、D來進行分層開發(fā),當然這不是重點,重點是它雖然使用Java,但是大部分不以面向?qū)ο蟮男问絹砭帉懗绦颍椖恐须S處可見的是static的靜態(tài)方法,幾乎什么功能都可以用靜態(tài)方法來完成,我的理解它已然是一個用java以面向過程的思想開發(fā)的項目。這個項目在方法之間傳遞數(shù)據(jù)時,不適用對象封裝,而是采取多個入?yún)⒌男问?,所以很常見的就是要一個方法,有N多個入?yún)ⅲ?個是常見、10個都不特殊。這種方式來編寫方法,有一定的缺點:
在閱讀代碼的時候,經(jīng)常會不明白參數(shù)的意義,而需要仔細的去看javaDoc上的注釋,影響效率;
調(diào)用一些工具時,因為不是以面向?qū)ο蟮姆绞饺ピO計程序,所以所有變量的作用域自然只在方法體內(nèi),于是對于一些需要設置參數(shù)的工具,簡單的例如:分頁工具,就需要通過一大堆的入?yún)ⅲ?jīng)常會搞不懂入?yún)⒌囊饬x,每次調(diào)用起來需要重新設置一大堆的參數(shù)值;或者使用一個Map來裝載這些參數(shù),這樣帶來的問題就是你甚至不知道有什么參數(shù)需要設置,經(jīng)常會出現(xiàn)錯誤。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26