6.4 Replace Temp with Query 以查詢取代臨時變數
將表示式提煉到一個獨立方法中,將這個臨時變數的所有引用點替換為對新方法的呼叫
更多精彩
- 更多技術部落格,請移步 asing1elife’s blog
前置條件
- 該方法通常是 6.1 Extract Method 提煉方法 的前置條件
動機
- 臨時變數只能在所屬方法中使用,它們會促使編寫更長的方法
案例
public double getDiscountPrice() {
double basePrice = quantity * itemPrice;
if (basePrice > 1000 ) {
return basePrice * 0.95;
} else {
return basePrice * 0.98;
}
}
public double getDiscountPrice() {
if (getBasePrice() > 1000) {
return getBasePrice() * 0.95;
} else {
return getBasePrice() * 0.98;
}
}
private double getBasePrice() {
return quantity * itemPrice;
}
相關推薦
6.4 Replace Temp with Query 以查詢取代臨時變數
將表示式提煉到一個獨立方法中,將這個臨時變數的所有引用點替換為對新方法的呼叫 更多精彩 更多技術部落格,請移步 asing1elife’s blog 前置條件 該方法通常是 6.1 Extract Method 提煉方法 的前置條件
重構---重構手法-----以查詢取代臨時變數(Replace Temp with Query)
本文轉載,原作者:皮斯特勞沃 開門見山 發現:你的程式以一個臨時變數儲存某一表達式的運算結果。 解決:將這個表示式提煉到一個獨立函式中。將這個臨時變數的所有引用點替換為對新函式的呼叫。 //重構前 double basePrice = _quantity * _itemPr
重構二:以查詢取代臨時變數
如果你的程式中有一個臨時變數,他的賦值操作是通過一個表示式來進行的,那我們可以把這個表示式單獨提煉出一個函式,在源程式中對變數的引用改為對這個函式的引用。 動機 如果在一個函式內部通過表示式對一個臨時變數賦值,這驅使你會寫出越來越長的程式碼,因為只用這樣你才能訪問到臨時變數,而且這
重構筆記——以查詢取代臨時變數
在上一篇文章中介紹了“ 內聯臨時變數“。本文將介紹“以查詢取代臨時變數”這種重構手法。 下面讓我們來學習這種重構手法吧。 開門見山 發現:你的程式以一個臨時變數儲存某一表達式的運算結果。
6.8 Replace Method with Method Object 以方法物件取代方法
將大型方法放入單獨物件,使方法內的臨時變數成為物件中欄位,在物件中將大型方法分解為多個小型方法 更多精彩 更多技術部落格,請移步 asing1elife’s blog 前置條件 有時候會發現無法使用 6.4 Replace Temp w
10.15 Replace Exception with Test 用測試取代異常
修改方法呼叫者,使其在呼叫方法之前就做好異常檢查 更多精彩 動機 對於一個可以被預先檢查的條件,卻使用了一個異常進行丟擲 頻繁的無選擇的使用異常,會導致程式反饋十分不友好,對於能內部處理及預測的
ES5.6.4原始碼分析----ES的查詢過程
程式碼入口 ES5.6.4的查詢功能的程式碼入口位於TransportSearchAction#doExecute @Override protected void doExecute(Task task, SearchRequest searchReq
重構 改善既有程式碼的設計 Replace Method with Method Object(以函式物件取代函式)
你有一個大型函式,其中對區域性變數的使用使你無法採用Extract Method。 將這個函式放進一個單獨物件中,如此一來區域性變數就成了物件內的欄位。然後你可以在同一個物件中將這個大型函式分解為多個小型函式。 動機 我們一直在強調,小型函式優美動人。只要將相對獨立的程式碼從大型函式中提煉出來,就大大提
PTA 資料結構與演算法題目集(中文)6-4 鏈式表的按序號查詢
6-4 鏈式表的按序號查詢(10 分)本題要求實現一個函式,找到並返回鏈式表的第K個元素。函式介面定義:ElementType FindKth( List L, int K ); 其中List結構定義如
ORACLE--Connect By、Level、Start With的使用(Hierarchical query-層次查詢)
查詢員工編號為7369的領導: 1 SELECT LEVEL,E.* FROM EMP E CONNECT BY PRIOR E.MGR = E.EMPNO START WITH E.EMPNO = 7876 2 ORDER BY LEVEL DESC "start with" -- this id
重構手法30:Replace Type Code with Class (以類取代型別碼)
類之中有一個數值型別碼,但它並不影響類的行為。以一個新的類替換該數值型別碼。 動機:在以C為基礎的程式語言中,型別碼或列舉值很常見。如果帶著一個有意義的符號名,型別碼的可讀性還不錯。問題在於,符號名終究只是個別名,編譯器看見的、進行型別檢驗的,還是背後那個數值。任何接受
6-4 查詢子串(20 分)
本題要求實現一個字串查詢的簡單函式。函式介面定義:char *search( char *s, char *t ); 函式search在字串s中查詢子串t,返回子串t在s中的首地址。若未找到,則返回NULL。裁判測試程式樣例:#include <stdio.h> #define MAXS 30
《物聯網框架ServerSuperIO教程》-19.設備驅動和OPC Client支持mysql、oracle、sqlite、sqlserver的持久化。v3.6.4版本發布
sql 數據庫名 http oracle mongod 文件 https bapi 開發 19.設備驅動和OPC Client支持mysql、oracle、sqlite、sqlserver的持久化 19.1 概述 ServerSuperIO支持設備驅動
Appium 1.6.4 環境搭建流程(Java, Android+IOS, Windows+Mac)
經典 客戶 dev utf-8 4.6.1 新版本 -m works odi Appium1.6.4已經出來一段時間了,快速給大家串一下怎麽搭建,貼了下載鏈接 1 基礎環境: Windows + Mac: Java JDK 1.8+ (需配置環境變量),Appium1
[RxJS] Replace zip with combineLatest when combining sources of data
his cnblogs ons repl com combine zed mean pla This lesson will highlight the true purpose of the zip operator, and how uncommon its use c
4.6.4 白盒測試(第二部分)
6.4 png image log nbsp src -128 logs 4.6 4.6.4 白盒測試(第二部分)
2017-6-4 用jQuery 做大圖輪播
length move val orm fun margin window blog cli <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_De
上周熱點回顧(5.29-6.4)
log com 順豐 網絡 bind 在線 維權 服務 詳解 熱點隨筆: · 觀《IT培訓行業揭秘》觸發北大青鳥回憶(MXTA)· 每天4億行SQLite訂單大數據測試(源碼)(大石頭)· 為什麽說上ERP找死?(競爭)&midd
第4章 數據鏈路層(4)_擴展以太網
style 由於 crc prior 運行 選擇 兩個 需要 指定端口 4. 擴展以太網 4.1 集線器(hub) (1)集線器組網 ①10BASE-T雙絞線以太網的通信距離短,每個站到集線器的距離不超過100m(註意,10表示10Mb/s的數據傳輸率,BASE表示連接
ABP官方文檔翻譯 6.4 導航
tro gist perm 目的 name blog 註入 chart 客戶端 導航 創建菜單 註冊導航提供者 顯示菜單 每一個網絡應用都會有一些菜單用來在pages/screens之間導航。ABP提供了通用的基礎設施來創建並顯示菜單。 創