C#重构

Jul 06, 2016 pm 01:30 PM
程式碼 外部 變更 編寫 透過 重構

重构是在编写代码后在不更改代码的外部行为的前提下通过更改代码的内部结构来改进代码的过程。 一、何时需要重构 1、代码中存在重复的代码; 如果类中有重复的代码块,需将其提炼出一个新的独立方法,如果是不同类中具有相同的代码,将其提炼成一个新类。 2

重构是在编写代码后在不更改代码的外部行为的前提下通过更改代码的内部结构来改进代码的过程。

一、何时需要重构

1、代码中存在重复的代码;

  如果类中有重复的代码块,需将其提炼出一个新的独立方法,如果是不同类中具有相同的代码,将其提炼成一个新类。

2、过大的类和过长的方法;

过大的类往往是类抽象不合理的结果,类抽象不合理将降低代码的复用率。当看到一个过长的方法时,需要想办法将其划分为多个小方法。

方法中的代码行数越多,则方法越难理解。我们推荐每个方法中只包含 20-25 行代码。但有些人说 1-10 行更合理,这只是些个人喜好,没有硬性的规则。抽取方法是最常见的重构方式之一。如果你发现一个方法过长,或者已经需要一个注释来描述它的目的了,那么你就可以应用抽取方法了。人们总是会问一个方法到底多长合适,但其实长度并不是问题的根源。当你在处理复杂的方法时,跟踪所有局部变量是最复杂和消耗时间的,而通过抽取一个方法可以节省一些时间。可以使用 Visual Studio 来抽取方法,它会帮助你跟踪局部变量,并将其传递给新的方法或者接收方法的返回值。

3、牵一发而动全身的修改;

修改一个小功能,或增加一个小功能时,就引发一次代码地震,也许是你的设计抽象度不够理想,功能代码太过分散所引起的。

4、类之间需要过多的通讯;

A 类需要调用B 类的过多方法访问B 的内部数据,是不是这两个类根本就不应该分开。

5、过度耦合的信息链;

代码中常常会使用中间层来达到松耦合的目的,但过多的中间层,层层相连,是否需要考虑减少中间层。

6、功能相似的类或方法;

7、不完美的设计;

8、缺少必要的注释;

9、始终控制类的大小

  超大的类在尝试做太多的事情,这违反了单一职责原则(SRP),也就是面向对象设计原则 SOLID 中的 S。

  为什么一定要将两个职责分离到单独的类中呢?因为每一个职责都是变化的中心。在需求变更时,这个变更将会出现在负责该职责的类中。如果一个类承担了多个职责,就会有一个以上的原因导致其变化。如果一个类有多重职责,则说明这些职责已经耦合到了一起。并且某个职责的变化将有可能削弱或限制这个类满足其他职责的能力。这种耦合将会导致非常脆弱的设计,进而在职责发生变化时,设计可能被意想不到的破坏了。

下面两条可以归为重写范畴,代码规范问题。

10、避免过多的参数

  通过声明一个类来代替多个参数。创建一个类,用于包含所有的参数。通常来讲,这是一个较好的设计,并且这个抽象非常的有价值。

11、避免复杂的表达式

  复杂的表达式意味着其背后隐藏了一些涵义,我们可以通过使用属性来封装这些表达式,进而使代码更易读些。 

<span style="color: #0000ff;">if</span>(PRoduct.Price><span style="color: #800080;">500</span> && !product.IsDeleted && 
 !product.IsFeatured &&<span style="color: #000000;"> product.IsExported)
 {
    </span><span style="color: #008000;">//</span><span style="color: #008000;"> do something</span>
 }
登入後複製

 

二、C# VS2010中的几点重构

1、提取方法重构

2、重命名重构

3、封装字段重构

4、提取接口重构

5、移除参数重构

6、重新排列参数重构


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1317
25
PHP教程
1268
29
C# 教程
1246
24
怎麼更改wallpaper engine的儲存位置? wallpaper engine設定儲存路徑方法 怎麼更改wallpaper engine的儲存位置? wallpaper engine設定儲存路徑方法 Mar 13, 2024 pm 12:40 PM

  很多用戶都喜歡在wallpaperengine上下載各種的壁紙、視頻,時間久了,就會發現下載的壁紙越來越多,導致硬碟空間不夠用了,這時候可以更改wallpaperengine的儲存位置來減少空間佔用。那麼下面就來看看wallpaperengine更改儲存路徑的方法吧。  第一步:點選左上角steam下的設定開啟以下介面。  第二步:點擊下載找到內容庫下面的“Steam庫資料夾”,在上面按一下開啟。  第三步:點擊新增庫資料夾,選擇你想要的更改到的路徑,添加好之後在預設那一欄右鍵,

如何修改win7桌面圖示的字體顏色 如何修改win7桌面圖示的字體顏色 Jan 02, 2024 pm 11:17 PM

win7預設的桌面圖示字體一般是白色的,我們如果使用了白色的桌面背景的話,可能會看不見桌面圖示文字,這時候就可以在個性化設定中透過高級外觀設定自訂桌面字體顏色,下面就一起來看一下吧。 win7桌面圖示字體顏色變更教學1、右鍵桌面空白處,開啟「個人化」設定。 2.在主題下我們可以直接選擇想要的主題就可以更改桌面圖示字體顏色了。 3.如果不滿意這些主題,還可以開啟「視窗顏色」如圖所示。 4.點選下方的「進階外觀設定」5、將圖示位置的「項目」改為「桌面」6、然後在紅框位置就可以更改字體顏色、大小等各種屬性

解決win7驅動程式碼28的方法 解決win7驅動程式碼28的方法 Dec 30, 2023 pm 11:55 PM

有的用戶在安裝設備的時候遇到了錯誤,提示錯誤代碼28,其實這主要是由於驅動程式的原因,我們只要解決win7驅動程式碼28的問題就可以了,下面就一起來看一下應該怎麼來操作吧。 win7驅動程式碼28怎麼辦:首先,我們需要點擊螢幕左下角的開始選單。接著,在彈出的選單中找到並點擊“控制面板”選項。這個選項通常位於選單的底部或附近。點擊後,系統會自動開啟控制面板介面。在控制面板中,我們可以進行各種系統設定和管理操作。這是懷舊大掃除關卡中的第一步,希望對大家有幫助。然後,我們需要繼續操作,進入系統和

此工作簿包含指向一個或多個可能不安全的外部來源的鏈接 此工作簿包含指向一個或多個可能不安全的外部來源的鏈接 Feb 26, 2024 am 11:07 AM

Excel是否繼續拋出此工作簿包含指向一個或多個外部來源的鏈接,這些外部來源在開啟工作簿時可能會顯示不安全警告訊息?許多用戶報告說,無論何時打開Excel文件都會收到此警告。雖然該警告指示工作簿中存在潛在的惡意鏈接,但即使您已包含受信任的外部來源,也可能會觸發該警告此工作簿包含指向一個或多個可能不安全的外部來源的鏈接如果打開Excel文件時出現警告提示“此工作簿包含指向一個或多個可能不安全的外部來源的連結”,您可以嘗試以下解決方案來解決該問題:檢查工作簿中的外部連結並刪除不受信任的鏈接。使用編輯連結功能

藍色畫面代碼0x0000001怎麼辦 藍色畫面代碼0x0000001怎麼辦 Feb 23, 2024 am 08:09 AM

藍屏代碼0x0000001怎麼辦藍屏錯誤是電腦系統或硬體出現問題時的一種警告機制,代碼0x0000001通常表示出現了硬體或驅動程式故障。當使用者在使用電腦時突然遇到藍色畫面錯誤,可能會感到驚慌失措。幸運的是,大多數藍色畫面錯誤都可以透過一些簡單的步驟來排除和處理。本文將為讀者介紹一些解決藍屏錯誤代碼0x0000001的方法。首先,當遇到藍色畫面錯誤時,我們可以嘗試重

用Eclipse更改背景顏色的逐步指南 用Eclipse更改背景顏色的逐步指南 Jan 28, 2024 am 08:28 AM

一步步教你在Eclipse中更改背景顏色,需要具體程式碼範例Eclipse是一款非常流行的整合開發環境(IDE),經常被用來編寫和調試Java專案。在預設情況下,Eclipse的背景顏色是白色,但有些使用者可能希望更改背景顏色以適應自己的喜好或減輕眼睛疲勞。本文將一步步教你如何在Eclipse中更改背景顏色,並提供具體的程式碼範例。步驟1:打開Eclipse首先

電腦頻繁藍屏而且每次代碼不一樣 電腦頻繁藍屏而且每次代碼不一樣 Jan 06, 2024 pm 10:53 PM

win10系統是一款非常優秀的高智慧系統強大的智慧可以為使用者帶來最好的使用體驗,一般正常的情況下使用者的win10系統電腦都不會出現任何的問題!但在優秀的電腦也難免會出現各種故障最近一直有小伙伴們反應自己的win10系統遇到了頻繁藍屏的問題!今天小編就為大家帶來了win10電腦頻繁藍屏不同代碼的解決方法讓我們一起來看看吧。電腦頻繁藍屏而且每次代碼不一樣的解決辦法:造成各種故障碼的原因以及解決建議1、0×000000116故障原因:應該是顯示卡驅動不相容。解決建議:建議更換廠商原帶驅動。 2、

GE通用遠端程式碼可在任何裝置上編程 GE通用遠端程式碼可在任何裝置上編程 Mar 02, 2024 pm 01:58 PM

如果您需要遠端編程任何設備,這篇文章會為您帶來幫助。我們將分享編程任何設備的頂級GE通用遠端代碼。通用電氣的遙控器是什麼? GEUniversalRemote是一款遙控器,可用於控制多個設備,如智慧電視、LG、Vizio、索尼、藍光、DVD、DVR、Roku、AppleTV、串流媒體播放器等。 GEUniversal遙控器有各種型號,具有不同的功能和功能。 GEUniversalRemote最多可以控制四台設備。頂級通用遙控器代碼,可在任何裝置上編程GE遙控器配備一組代碼,使其能夠與不同設備配合。您可

See all articles