if/else多,讓人看得心煩。if/else層次深,讓人看得頭痛。
怎樣才能讓**優雅呢?
介紹一種方法。步驟如下:
1. 將if/else區塊中邏輯抽象成介面。
2. 將各個if/else分支中的邏輯打散到實現類中。
3. 使用工廠模式,將不同的條件路由到實現類中。
假如有如下**:
if (cond == 1)
...if (cond == 2)
實現過程
1. 提煉介面
public class business
2. 實現類
public class business1
}
public class business2
}
3. 工廠類路由
工廠類
public class businessfactory
public static business getinstance(int cond)
if (cond == 2)
}}
使用類
business business = businessfactory.getinstance();
business.dobusiness();
這樣,以上**就看起來優雅多了。 反向傳播理解 從抽象到具體
反向傳播是深度學習的基礎理論知識,在去年很早的時候,就把研究生期間學習推導bp的過程總結了一下,寫了一篇文章,但是給同事分享的時候還是發現不能非常清晰的讓大家理解什麼是反向傳播,反思一下,可能是那篇文章講的太細節了,不能從巨集觀的角度理解,這一篇文章從抽象的角度出發,忽略公式推導的細節,然後反過來研...
從工廠模式到抽象工廠模式
之前我們說過簡單工廠模式,以及工廠模式,這次我們接下說抽象工廠模式,首先我們先看一下工廠模式及抽象工廠模式的定義。工廠模式 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類 抽象工廠模式 為建立一組相關或相互依賴的物件提供乙個介面,並且無需指定他們的具體類。...
從資料到資訊到決策
俗話說,忘記歷史就是背叛自己,今天這篇用此做開場再合適不過。這一篇將根據乙個虛擬的故事,來介紹如何通過歷史資料來幫助乙個銷售人員發現規律資訊從而輔助他來做一些決策資訊。本文的主角是tim,tim在乙個銷售部門,部門最近決定做新一輪銷售計畫,然後根據計畫結束時,各個銷售人員的銷售業績來進行kpi考核。...