一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

改善代碼設計 —— 處理概括關系(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),轉載需保留來源!

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

主站蜘蛛池模板: 青草国产 | 3p久久| 日韩色在线 | 在线成人免费 | 久久91亚洲精品中文字幕奶水 | 在线观看91香蕉国产免费 | 狠狠综合久久综合88亚洲日本 | 男人扒开女人腿使劲桶动态图 | 婷婷在线视频国产综合 | 久久精品免视着国产成人 | 加勒比一本大道在线 | 国内精品美女久久久久 | 久久国产欧美日韩高清专区 | 美女视频黄的全免费视频网站 | 国产在线精彩视频 | 午夜 在线播放 | 91在线品视觉盛宴免费 | 久操热久操| 91探花福利精品国产自产在线 | 久久久精品中文字幕 | 一级做a爰性色毛片 | 久久精品国产清白在天天线 | 久久综合久 | 国产成人亚洲精品无广告 | 欧美日韩中文国产va另类 | 国产成人精品一区 | 亚洲第一免费视频 | 激情五月综合综合久久69 | www.日本一区| 亚洲区一二三四区2021 | 一本加勒比hezyo东京re高清 | 色婷婷久久综合中文久久一本` | 国产精品福利久久 | 亚洲国产精品67194成人 | www.日本高清视频 | 免费观看福利视频 | 一区二区三区美女视频 | 超级色的网站观看在线 | 五月天开心激情 | 亚洲欧美自拍一区 | 四虎免费视频 |