国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

C#與重構(gòu)(入門)

2019-11-14 15:47:55
字體:
供稿:網(wǎng)友

C#與代碼重構(gòu)(入門)

  重構(gòu)(Refactoring)就是通過調(diào)整程序代碼改善軟件的質(zhì)量、性能,使其程序的設(shè)計模式和架構(gòu)更趨合理,提高軟件的擴展性和維護性。

單從概念少來理解重構(gòu)可能很抽象,那么通過下面的代碼來看就比較好理解了。

public class Sample

{

  public static void main(String args[])

  {

    int r=Console.ReadLine();

    r=Convert.ToDouble(r);

    Console.WriteLine(4.0/3*3.14*r*r*r);

    Console.ReadKey();    

  }

}

這是一個簡單的求球的體積的函數(shù),r為球的半徑,然后通過公式計算出結(jié)果并打印到顯示屏上,但你可以看看,在沒有注釋的前提下理解這段代碼,要花費你多少時間。

public class Sample

{

  public static void main(String args[])

  {

    int radius=Console.ReadLine();

    radius=Convert.ToDouble(radius);

    Console.WriteLine(4.0/3*3.14*radius*radius*radius);

    Console.ReadKey();    

  }

}

這段代碼實現(xiàn)的功能與上面完全一樣,但你可以比較一下兩段代碼的差別,可以看出,就只是把 r 換成了 radius (半徑),然后再看你理解這段代碼要花費多長的時間,很明顯所花的時間要少一些,應(yīng)為此時你不必去思考 radius 的含義,它就是 半徑 ,而上面的那段代碼所要表示的意義必須要通過后面的代碼才能知道 r 所要表示的含義。

 public class Sample

{

  public static void main(String args[])

  {

    const double PI=3.141592654;

    int radius=Console.ReadLine();

    radius=Convert.ToDouble(radius);

    Console.WriteLine(4.0/3*PI*radius*radius*radius);

    Console.ReadKey();

  }

}

這段代碼與上面的區(qū)別在于把 3.14 換成了常量 PI ,這樣做的好處在于如果代碼中多次的出現(xiàn)了 3.14 這個值,那么通過 PI 常量來修改就顯得很方便,其次就是便于閱讀(比如:本例,通過定義常量 PI 代替公式中的 &PRod; ,而不是直接使用其值3.1415.....)

 public class Sample

{

  public static void main(String args[])

  {

    const double PI=3.141592654;

    int radius=Console.ReadLine();

    radius=Convert.ToDouble(radius);

    double Volume=4.0/3*PI*radius*radius*radius;

    Console.WriteLine(Area);

    Console.ReadKey();

  }

}

這段代碼又定義了一個新的變量 Volume(體積) 用來標識所求的面積,而不是直接使用公式本身,這樣做的好處很明顯,使得代碼的結(jié)構(gòu)更清晰,可讀性增加。

public class Sample

{

  public static double VolumeOfBall(double radius)

  {

    const double PI=3.141592654;

    double Area=4.0/3*PI*radius*radius*radius;

    return Area;

  }

 

  public static void main(String args[])

  {

    int radius=Convert.ToDouble(Console.ReadLine());

    Console.WriteLline(VolumeOfBall(radius));

    Console.ReadKey();

  }

}

這段代碼通過提取出一個函數(shù) VolumeOfBall() 來封裝求球的體積的代碼,增加了代碼的重用性,而且看函數(shù)名就可以理解這個函數(shù)的作用,省去了在代碼中添加注釋的必要,即實現(xiàn)了代碼的精簡,又使得代碼結(jié)構(gòu)更加優(yōu)上面這個例子就簡單解釋了什么是代碼重構(gòu)--即調(diào)整代碼的結(jié)構(gòu),比如一些常用的數(shù)學(xué)符號用特定的標識,一些變量在命名是盡量使其可讀性更強,能從變量名就可以

 

  理解這個變量的作用,將一些反復(fù)出現(xiàn)的代碼段提取成一個函數(shù)(方法){方法名也應(yīng)簡單,易讀,能從方法名中理解這個方法的功能},盡量少的使用注釋,把更多的信息

整合到代碼中(即變量名和函數(shù)名以及一些常量名等),這樣做的好處是使代碼看起來不雜亂,更清晰易讀。

  總的來說,重構(gòu)不僅僅是更改已經(jīng)編寫的代碼的結(jié)構(gòu),而且是一種思想(它指導(dǎo)我們在編寫代碼時如何使得代碼更“優(yōu)美”)。代碼重構(gòu)的作用很大,好處很多。也許

從這個例子中看不出來,當(dāng)然也許你會說通過重構(gòu)使得這段代碼的執(zhí)行時間變得更長了,效率變低了,但你可以想一下,當(dāng)你在做一個很大的工程,而這個工程有成千上萬

行代碼時,如果不注意使用重構(gòu)的思想和方法,而單純的考慮效率,那將會是一個無比復(fù)雜的任務(wù),但使用重構(gòu),不僅代碼更易讀,易改,而且節(jié)省開發(fā)時間。所以學(xué)好重

構(gòu)對我們以后的編程生涯都是有巨大的好處的。

 

 

 


上一篇:C#值類型引用類型

下一篇:WPF依賴屬性

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 绩溪县| 汝南县| 阳新县| 福清市| 龙山县| 双峰县| 龙江县| 大港区| 巩义市| 麻江县| 河北区| 马龙县| 宁陕县| 隆德县| 榆社县| 定南县| 钟山县| 保康县| 吉安市| 甘泉县| 贵德县| 仁怀市| 阳信县| 台中市| 南漳县| 阳原县| 西畴县| 芷江| 石屏县| 宜君县| 吴江市| 吴川市| 金川县| 邢台县| 泽州县| 兴仁县| 光山县| 石景山区| 民乐县| 玉环县| 浠水县|