一区二区久久-一区二区三区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),轉載需保留來源!

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

主站蜘蛛池模板: 色狠狠成人综合色 | 五月激情片| 色婷婷在线视频 | 亚洲精品国产网红在线 | 国产成人欧美 | 好吊妞视频988在线播放 | 一级做a爰久久毛片武则天 一级做a爰毛片 | 欧美日韩不卡码一区二区三区 | 东方伊人免费在线观看 | 男女激情视频国产免费观看 | 日韩黄色一级毛片 | 6080午夜乱理伦片 | 中国精品视频一区二区三区 | 一区二区中文字幕 | 蜜月aⅴ免费一区二区三区 免播放器在线观看 | 色欧美在线 | 国内在线精品 | 超碰97人人射妻 | 色老板在线观看永久免费视频 | 亚洲欧美日韩综合一区 | 看全大色黄大色黄大片一级爽 | 国产欧美一区二区三区在线 | 九九99九九精彩网站 | 九九久久国产精品免费热6 九九久久精品 | 亚洲一区国产 | 一级做a爰片性色毛片视频图片 | 精品日韩一区二区三区视频 | 怡红院免费的全部视频 | 岛国一区二区 | 国产麻豆福利a v在线播放 | 国产成人涩涩涩视频在线观看 | 男女免费爽爽爽在线视频 | 亚洲情综合五月天 | 亚洲图片另类图片 | 天天色天天射综合网 | 欧美色精品 | 亚洲欧美国产精品久久久 | h网站国产| 四虎国产精品免费观看 | www.黄色.con| 思99re久久这里只有精品首页 |