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

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

主站蜘蛛池模板: 婷婷六月丁香午夜爱爱 | 69国产成人综合久久精品91 | 成人在线第一页 | 亚洲精品亚洲人成人网 | 日日夜夜拍拍 | 国产91精品一区二区麻豆网站 | 中文字幕一区二区三区5566 | 日韩每日更新 | 欧美激情a∨在线视频播放 欧美激情不卡 | 99热在线只有精品 | 日韩欧美在线播放视频 | 久草热视频在线 | 美女扒开腿让男人捅爽 | 四虎免费最新在线永久 | a级精品国产片在线观看 | 色多多视频在线观看 | 久久久青草青青亚洲国产免观 | 精品久草| 日本不卡一区二区三区在线观看 | 久久精品亚瑟全部免费观看 | 久久久这里有精品 | 国产美女精品一区二区三区 | 国产欧美久久久精品影院 | 久久怡红院国产精品 | 国产高清视频在线 | 真正国产乱子伦高清对白 | 午夜精品在线免费观看 | 国产欧美久久久另类精品 | 玖玖成人| 白白在线成人永久视频 | 精品国产bdsm | 久久精品国产在热久久2019 | 国产成人www | 久久精品国产2020观看福利色 | 国产美女在线精品免费观看 | 99视频在线观看视频一区 | 亚洲视频在线一区 | 免费观看成人www精品视频在线 | 欧美亚洲激情 | 亚洲看片网站 | 东京道一本加勒无 |