天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

改善代碼設計 —— 處理概括關系(Dealing with Generalization)

  系列博客

      1. 改善代碼設計 —— 優化函數的構成(Composing Methods)

      2. 改善代碼設計 —— 優化物件之間的特性(Moving Features Between Objects)

      3. 改善代碼設計 —— 組織好你的數據(Composing Data)

      4. 改善代碼設計 —— 簡化條件表達式(Simplifying Conditional Expressions)

      5. 改善代碼設計 —— 簡化函數調用(Making Method Calls Simpler)

      6. 改善代碼設計 —— 處理概括關系(Dealing with Generalization)

  1. Pull Up Field (提升值域)

  解釋:

      如果發現每個子類都擁有相同的某個值域, 那么使用 Pull Up Field 將這個值域提升到父類中去.

  沖動前:

  沖動后:

  2. Pull Up Method (提升函數)

  解釋:

      如果每個子類都有相同的某個函數, 這個函數做同樣的事情, 而且結果也相同, 那么使用 Pull Up Method 將這個函數提升到父類中去.

  沖動前:

  沖動后:

  3. Pull Up Constructor Body (提升構造函數)

  解釋:

      特別要注意每個子類中重復的代碼, 如果可能的話盡量將它們提煉成方法并搬到父類中去. 對于子類的構造函數, 我們需要找出相同的部分, 用這些相同的部分組成父類的構造函數.

      如下面的例子, 如果不光 Salesman, 還有 Engineer 等等類別的員工在構造他們的時候都需要 name 和 level 屬性, 可以考慮使用 Pull Up Constructor Body 將設置這兩個屬性提升到父類的構造函數中去.

  沖動前:

class Employee
{
public string Name { get; set; }
public int Level { get; set; }
//...
}
class Salesman : Employee
{
public string Hobby { get; set; }

public Salesman(string name, int level, string hobby)
{
this.Name = name;
this.Level = level;
this.Hobby = hobby;
}
//...
}
//...

NET技術改善代碼設計 —— 處理概括關系(Dealing with Generalization),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲午夜精品一区二区公牛电影院 | 中文无码熟妇人妻AV在线 | 最近2019中文字幕免费 | 久久青草免费线观最新 | 久久热在线视频精品1 | 欧美xxxxx18| 午夜一区欧美二区高清三区 | 欧美亚洲日韩国产在线在线 | 在线 国产 欧美 亚洲 天堂 | 日韩毛片在线视频 | 涩涩视频www在线观看入口 | 内射白嫩少妇超碰 | 亚洲国产精品久久无套麻豆 | 欧美性色xo影院69 | 国语自产拍在线视频普通话 | 亚洲日韩视频免费观看 | 搞av.com| 久久精品国产欧美 | 亚洲精品无码久久久久A片空 | 一个人免费视频在线观看高清版 | 九九热在线视频 | SM双性精跪趴灌憋尿调教H | 国产午夜不卡 | 午夜DY888国产精品影院 | 成人性生交大片免费看4 | 色狠狠一区二区 | 纯肉无码AV在线看免费看 | 老王午夜69精品影院 | 美女脱了内裤张开腿让男人爽 | 一本久道视频无线视频 | 啊轻点灬大JI巴又大又粗 | 国产呦精品一区二区三区下载 | 在线观看视频中文字幕 | 亚洲精品成人在线 | 青青青手机视频 | 亚洲高清无在码在线电影 | 4hu四虎免费影院www | 日韩经典欧美一区二区三区 | 野花韩国高清完整版在线 | 含羞草免费完整视频在线观看 | 欧美激情视频二区 |