天天躁日日躁狠狠躁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),轉載需保留來源!

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

主站蜘蛛池模板: 欧美亚洲天堂网 | 精品无码无人网站免费视频 | 暖暖日本在线手机免费完整版 | 亚洲精品久久久午夜麻豆 | 变态露出野外调教 | 翁熄性放纵交换01 | 亚洲人成www在线播放 | chinese情侣自拍啪hd | 精品国产成a人在线观看 | 日韩亚洲欧美中文高清 | 无码人妻精品一区二区蜜桃在线看 | 古代又黄又肉到湿的爽文 | 中文字幕亚洲无限码 | 国产一区二区三区内射高清 | 亚洲蜜桃AV色情精品成人 | 99E久热只有精品8在线直播 | 拔萝卜电视剧高清免费 | 亚洲精品一区三区三区在线观看 | 秋霞电影网午夜一级鲁丝片 | seyeye在清在线 | 人人啪日日观看在线 | 国产人妻人伦精品无码.麻豆 | 丝袜足控免费网站xx91 | 午夜射精日本三级 | 中文字幕在线视频免费观看 | 少妇无码吹潮久久精品AV网站 | 午夜亚洲精品不卡在线 | 色婷婷综合久久久久中文一区二区 | 手机在线观看你懂的 | 乌克兰粉嫩摘花第一次 | qvod欧美电影| 好大的太粗好深BL | 久久精品免费看网站 | 国产三级在线观看视频 | 国产产乱码一二三区别免费 | 黄色一级毛片免费 | 国产自啪偷啪视频在线 | 国产剧情在线精品视频不卡 | 夜夜穞狠狠穞 | 入禽太深在线观看免费高清 | 亚洲国产黄色 |