我的重構第三步
1>提煉函數。顆粒度-->復寫。標準 函數名稱--函數本體的距離
無局部變量。 有局部變量,不賦值。 有局部變量,賦值。 怎麽辦?
返回的變量不止一個怎麽辦?
2>在函數調用點插入函數本體,然後移除改函數-->去除無用的簡介層-->內聯函數
3>內聯臨時變量
4>只被賦值一次的臨時變量-->局部變量會使得代碼難以被提煉-->替換為查詢式-->以查詢替換為臨時變量
5>引入解釋性變量-->Extract Method替代變量
final boolean isMacOs = ?
final boolean isIEBrowser =?
final boolean wasResized = ?
if(isMacOs && isIEBrowser && wasResized){}
6>針對每次賦值,創建獨立的、應對的臨時變量-->責任-->分解臨時變量
7>引用對象重新指向的問題--->移除對參數的賦值 參數上強制加關鍵詞final
8>以函數對象取代函數-->Extract Method不必擔心參數傳遞的問題
9>替換算法-->例子 集合替換多重判斷
我的重構第三步
相關推薦
我的重構第三步
extract 名稱 每次 傳遞 參數傳遞 組織函數 boolean 距離 分解 3.重新組織函數1>提煉函數。顆粒度-->復寫。標準 函數名稱--函數本體的距離無局部變量。 有局部變量,不賦值。 有局部變量,賦值。 怎麽辦?返回的變量不止一個怎麽辦?
拖拽的效果 第一步 設置 可拖拽的屬性 draggable="true" 綁定drag 事件 第二步 設置 放置位置 觸發的事件 dragover 第三步 設置 放置之後 觸發的事件 dragover 下面請看代碼:
存儲 targe 觸發 get tex 一個 func ons *** (function(){ /*-------節點--------*/ var myimg = document.getElementById(‘myimg‘); var dropBox
部署AlwaysOn第三步:集群資源組的健康檢測和故障轉移
exe htm 有一個 監控器 name 檢查 oar ges 包含 資源組是由一個或多個資源組成的組,WSFC的故障轉移是以資源組為單位的,資源組中的資源是相互依賴的。一個資源所依賴的其他資源必須和該資源處於同一個資源組,跨資源組的依賴關系是不存在的。在任何時刻,每個資源
學習 WebService 第三步:一個簡單的實例(SoapUI測試REST項目)
方法 資源 ima .com required tle margin 導出 ont 原文地址:SOAPUI測試REST項目(六)——REST服務和WADL ↑↑↑ 原文用的SoapUI,2018-3-19時,這個軟件已經更名為ReadyAPI(集成了SoapUI),因此下文
我在北京寫代碼 寫出心中悲與喜 寫出人間的悲歡離合 歡迎閱讀 我的第三章 使用集合組織相關數據(泛型集合)
nes -s ear 插入元素 資源管理 底層 動態 用途 key) ArrayList arry = new ArrayList(); arry.Add("小明"); arry.Add("小D"); arr
AbpZero之企業微信---登錄(拓展第三方auth授權登錄)---第三步:需要註意事項
login eat exce sync private open 生成 isp lose 1、AbpZero的auth登錄會在數據庫中的AbpUserLogins表會根據你登錄的ProviderKey和Provider來生成生成一條記錄,ProviderKey在表中是唯一的
Swift:我的第三個Demo
這裡Demo工作量是我目前做的做大的,相應的知識點有 1 頁面UI佈局 2 delegate委託模式的實現 3 Alamofire網路請求 4 JSON初體驗 5 自定義TableViewCell 6 NavigationViewController初體驗 7 Kingf
第三步:移動sprite小精靈
開啟第二步的專案,給遊戲新增敵人enemies 自定義addTarget()函式來完成這項工作 使敵人從螢幕左邊出生,以一個隨機random的速度向左移動 在HelloWorldScene.h標頭檔案加入void addTarget()宣告 在HelloWorldScen
H.264---CABAC---第三步----確定上下文索引
在前面初始化的時候就出現了上下文這個概念,那麼上下文所指的是什麼? 以JM中的上下文結構體為例 1 2 3
spring原始碼分析六 bean的載入第三步-單例的建立 上篇
在上一篇部落格中有單例建立的如下程式碼: if (mbd.isSingleton()) { sharedInstance = getSingleton(beanName, () -> { try { return createBean(bean
Linux第三步交叉工具鏈arm-linux-gcc的安裝
使用sudo apt-cache search arm-linux命令可以收索你想要安裝的軟體。 然後sudo apt-get install 軟體名稱。比如現在Ubuntu最新版本為4.8.0,根據搜尋的結果安裝,比如:sudo apt-get install arm-linux-gnueabihf。 一
jhipster建立微服務-學習第三步
前面第一步和第二步學習了jhipster的整體架構和Registry的搭建。注意Registry是微服務的一個管理中心。微服務都是註冊到上面才提供給前端訪問的。本篇記錄微服務的建立過程。 建立資料夾myapp,在控制檯cd到這一級檔案目錄,使用命令:jhipster 初始
React Native入門篇—第三步專案常用依賴包的安裝和配置
本人學習React Native沒有看過任何教學視訊,都是按照官網一步步學習的。只研究了Android開發,所以下面的教程都是Android開發教程。 注意:未經允許不可私自轉載,違者必究 React Native官方文件:https://reactnative.cn/docs
在Navicat上新建連線,相關配置(阿里雲伺服器配置MySQL資料庫,第三步)
1、開啟本地的Navicat,點選連線--新建連線--MySQL,出現下圖 連線名:任意填 主機:阿里雲的ip地址 密碼:安裝MySQL時,配置的密碼。然後,點選“確定”。2、這時,點選剛才新建的“阿里雲”這個連結。我的出現了錯誤(但是忘記截圖了)3、師兄說是阿里雲控制
配置oneinstack遠端連線mysql(centos+oneinstack+composer+laravel)第三步
oneinstack安裝好了,使用navicat去連線資料庫的時候,發現訪問被拒絕,百度之後才發現, 為了安全考慮,OneinStack僅允許雲主機本機(localhost)連線資料庫,如果
第六章 個人優化vim第三步 :主題colorscheme
主題就是別人設計好的配色風格,主題本身是跨平臺的,並非linux下 vim專用。 visual studio,xcode等開發工具均可選用,類似於遊戲中的面板。 開啟一個Vim視窗,輸入命令:col
activiti第三步:demo核心程式碼
實體類 Person.java package com.fengye.example.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import ja
第三步 Javaweb專案部署
Javaweb專案部署 1、 編輯好的程式碼可以打包到Tomcat根\webapps 將檔案WebContent拷貝過去 2、給Eclipse安裝外掛 2.1目錄結構:\tomcat8\eclipse\plugins 方法一:可以直接拷貝到eclipse的plugi
Python 爬蟲第三步 -- 多執行緒爬蟲爬取噹噹網書籍資訊
XPath 的安裝以及使用 1 . XPath 的介紹 剛學過正則表示式,用的正順手,現在就把正則表示式替換掉,使用 XPath,有人表示這太坑爹了,早知道剛上來就學習 XPath 多省事 啊。其實我個人認為學習一下正則表示式是大有益處的,之所以換成 XPa
Android應用程式訪問linux驅動第三步:實現並向系統註冊Service
前面兩篇部落格記錄了實現Linux驅動和使用HAL層訪問Linux驅動的程式碼,我們分別對這兩部分做了測試,他們都正常工作。有了前面的基礎,我們就可以實現service層了,我們想系統註冊我們自己的service,在service中訪問HAL層,在HAL層中訪問