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

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

主站蜘蛛池模板: 全部老头和老太XXXXX | 十八禁啪啦啪漫画 | 免费看黄的片多多APP下载 | 羞羞漫画免费漫画页面在线看漫画秋蝉 | 美女扒开尿口让男生添动态图 | 欧美四虎精品二区免费 | 手机毛片在线观看 | 52色擼99热99 | 俄罗斯12x13x处 | 久久精品免费看网站 | 久久中文字幕免费视频 | 果冻传媒在线观看进入窗口 | 国产免费午夜 | 无码毛片内射白浆视频 | 国产在线亚洲精品观 | 久久婷婷五月综合色精品首页 | 俄罗斯少女人体 | 国产电影无码午夜在线播放 | 97人妻久久久精品系列A片 | 日韩特黄特色大片免费视频 | 黄色天堂在线 | 暖暖视频在线高清播放 | 波多久久亚洲精品AV无码 | 久久天天躁狠狠躁夜夜呲 | 粗大分开挺进内射 | 看 视频一一级毛片 | 男女作爱在线播放免费网页版观看 | 麻豆精品传媒卡一卡二传媒短视频 | 狠狠啪在线香蕉 | 把内衣脱了把奶露出来 | 忘忧草研究院一二三 | 丰满的女朋友 在线播放 | 无码天堂亚洲国产AV久久 | 男女啪啪抽搐呻吟高潮动态图 | 少妇系列之白嫩人妻 | 欧美激情视频在线观看一区二区三区 | 97色伦久久视频在观看 | 久久国产亚洲电影天堂 | 樱花草在线观看影院 | 亚洲三级精品 | 日韩一级精品久久久久 |