java已被弱化簽名,高效Java第四十條建議:謹慎設計方法簽名

作用

有助于設計易于學習和使用的API。

如何做——謹慎地選擇方法的名稱

1.選擇易于理解的,并且與同一個包中的其他名稱風格一致的名稱。

2.選擇與大眾認可的名稱相一致的名稱。

如何做——不要過于追求提供便利的方法

每個方法都應該盡其所能。

方法太多會使類難以學習、使用、文檔化、測試和維護。

只有當一項操作被經常用到的時候,才考慮為它提供快捷方法。

如果不能肯定,還是不提供快捷方法為好。

如何做——避免過長的參數列表

目標是四個參數以內。

相同類型的長參數序列格外有害。

避免過長的參數列表——把方法分解成多個方法,每個方法只需要這些參數的一個子集

注意提升分解出的多個方法的正交性。

避免過長的參數列表——創建輔助類(helper class),用來保存參數的分組

如果一個頻繁出現的參數序列可以被看作是代表了某個獨特的實體,建議使用這種方法。

避免過長的參數列表——從對象構建到方法調用都采用Builder模式

如果方法帶有多個參數,尤其是當它們中有些是可選的時候,最好定義一個對象來表示所有參數,并允許客戶端在這個對象上進行多次“setter”調用,每次調用都設置一個參數,或者設置一個較小的相關的集合。

一旦設置了需要的參數,客戶端就調用對象的“執行(execute)”方法,它對參數進行最終的有效性檢查,并執行實際的計算。

其他建議

優先使用接口而不是類定義參數類型。

對于boolean參數,要優先使用兩個元素的枚舉類型。

9cd0d9f4332c

Thermometer.newInstance(TemperatureScala.CELSIUS)比Thermometer.newInstance(true)更有用,而且支持在未來對TemperatureScala對進行擴展。

枚舉是可以有方法的,有時候這個特性也非常有用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536633.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536633.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536633.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

curl有php內存緩存,PHP CURL內存泄露的解決方法

PHP CURL內存泄露的解決方法curl配置平淡無奇,長時間運行發現一個嚴重問題,內存泄露!不論用單線程和多線程都無法避免!是curl訪問https站點的時候有bug!內存泄露可以通過linux的top命令發現,使用php函數mem…

MySQL學習【第五篇SQL語句上】

一.mysql命令 1.連接服務端命令 1.mysql -uroot -p123 -h127.0.0.1 2.mysql -uroot -p123 -S /tmp/mysql.sock 3.mysql -uroot -p123 -hlocalhost 4.mysql -uroot -p123 2.mysql登陸后的一些命令 1.\h或者help   查看幫助 2.\G       格式化查看數據(以k…

phpexcel.php linux,phpexcel在linux系統報錯如何解決

最近有個tp3.2的項目遷移到linux系統上了,突然有天發現原本在win server 2008上運行沒問題的excel導出功能在新的系統上不能使用了。報錯如下:說是1762行有問題,找到這個文件的代碼看看:/*** Get an instance of this class** acc…

優雅的redux異步中間件 redux-effect

不吹不黑,redux蠻好用。只是有時略顯繁瑣,叫我定義每一個action、action type、使用時還要在組件上綁定一遍,臣妾做不到呀!下面分享一種個人比較傾向的極簡寫法,仍有待完善,望討論。 github: github.com/li…

oracle 中累加函數,Oracle 分析函數分組累加!

用戶號碼 登陸時間13000000002010-01-0113000000012010-01-0113000000022010-01-0213000000012010-01-0213000000032010-01-0313000000022010-01-0313000000042010-01-0413000000032010-01-0413000000042010-01-0213000000062011-01-0413000000012011-01-04剔除重復登陸的用戶,…

asp.net core系列 48 Identity 身份模型自定義

一.概述 ASP.NET Core Identity提供了一個框架,用于管理和存儲在 ASP.NET Core 應用中的用戶帳戶。 Identity添加到項目時單個用戶帳戶選擇作為身份驗證機制。 默認情況下,Identity可以使用的 Entity Framework (EF) Core 數據模型。 本文介紹如何自定義…

oracle中創建游標,oracle 存儲過程創建游標

Oracle與Sql Server差異點詳解1、create函數或存儲過程異同點Oracle 創建函數或存儲過程一般是 create or replace ……SQL SERVER 則是在創建之前加一條語句,先判斷是否已經存在,如果存在刪除已有的函數或存儲過程。函數語句:if exists (sel…

hosts文件不起作用

突然發現電腦的hosts文件不起作用了。之前用的狠正常,近期也沒有修改過。首先排除什么格式、DNS、注冊表之類的問題。最終解決辦法(權限問題:有問題的hosts文件圖標上有個鎖):1.C:\Windows\System32\drivers\etc下復制…

oracle面臨的挑戰,未來數據庫管理員面臨的三大挑戰

原標題:未來數據庫管理員面臨的三大挑戰前言今天的數據庫管理員面臨著三大挑戰:工作重心向以應用程序為中心轉移、支持多個數據庫平臺的需求、在云端以及在本地管理數據庫性能的責任不斷擴大。為了在今天和未來都能站穩腳跟,數據庫管理員需要…

Reducer拆分

看到Redux官網上Reducer拆分后,最后生成的state的組合有點懵,主要是對combineReducers()這個工具類不了解,其實該方法是消除了一些樣板代碼。 如todoApp事例: import { combineReducers } from reduxconst todoApp combineReduce…

oracle中asmcmd,ASM工具asmcmd

Oracle的ASM一直不夠透明,但Oracle還是提供了一些工具來訪問ASM磁盤組的,asmcdm就是其中一個工具,本文將對其進行詳細介紹。感覺Oracle的ASM一直很不透明,不過Oracle還是提供了一些工具來訪問ASM磁盤組的,asmcdm就是其中一個工具。…

php頁面底部信息居中,css底部如何局中?css三種居中方法

本篇文章給大家帶來的內容是關于css底部如何局中?css三種居中方法,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。某天組長讓我改一個表格的樣式,要求底部局中。當時想很簡單的嘛,哼哧哼哧…

打造汽車“安卓平臺”,大眾或親手干掉傳統汽車產業

干掉傳統汽車產業的,很可能是大眾,而不是特斯拉。 于無聲處聽驚雷。 2019年的日內瓦車展,看起來并沒有傳出太大的新聞。汽車世界的目光,依然被特斯拉的喧囂所吸引。 然而,大眾汽車展臺上發生的一件看似不起眼的小事情&…

php返回101,PHP 101:變量與函數

功能很好.我看到功能徽標()比$logo更好. echo不占用太多內存,但$logo確實如此.即使函數logo()需要一些東西,它也將由PHP自己的垃圾收集器處理.您還可以使用這些函數來確保不會濫用分配的內存.> memory_get_peak_usage();> memory_get_usage();說明:Upon the e…

從 SPA 到 PWA:Web App的下一站在哪?

從AJAX(Asynchronous JavaScript XML,異步JavaScript和XML)開始, 尤其是 AngularJS 推出之后,SPA(Single Page App,單頁應用)已經成為前端 App 的必選方案。 SPA 可以在客戶端提供完…

php如何調用手機撥打電話,ionic調用手機系統的撥打電話

linux中wc命令用法Linux系統中的wc(Word Count)命令的功能為統計指定文件中的字節數.字數.行數,并將統計結果顯示輸出. 1.命令格式: wc [選項]文件... 2.命令功能: 統計指定文件中的字節數. ...POJ1364 King-差分Description Once, in one kingdom, ther…

使用class-validator替換Joi包的方法

前言 對每個接口的傳入參數進行校驗,是一個Web后端項目的必備功能,有一個npm包叫Joi可以很優雅的完成這個工作,比如這樣子: const schema {userId: Joi.string() }; const {error, value} Joi.validate({ userId: a string }, s…

linux服務器下降,linux - 遠程升級Ubuntu:如何最大程度地降低丟失服務器的風險? - Ubuntu問答...

問題描述背景:由于raid控制器的不兼容性問題,我被迫將服務器從Ubuntu 8.04 LTS遠程升級到10.04 LTS。與服務器的Internet連接比較穩定,很少掉線。盡管如此,我還是擔心在升級時會丟失通過SSH的連接,從而使服務器處于無法…

Linux中英文命令對應

本文我們把Linux的中英文命令做了對應翻譯,給需要的朋友參考一下。很多朋友在論壇上找Linux英文命令,我們給大家整理了比較全的Linux英文命令,并且附上了對應的中文意思。 su:Swith user 切換用戶,切換到root用戶 cat:…

linux實驗四文件安全,西北農林科技大學Linux實驗四 用戶和文件安全

一、 實驗目的實驗四 用戶和文件安全1. 理解用戶、組的概念2. 理解/etc/passwd、/etc/group、/etc/shadow文件 3. 練習useradd、groupadd、gpasswd、groups命令二、 實驗內容 1. 添加用戶 2. 添加組3. 添加用戶到工作組 4. 改變目錄原始組 5. 建立多個用戶共享的目錄6. 理解文件…