天天看點

層層清晰:面向對象的代碼模型

好了,在經曆了面向過程的代碼之後,我們來觀察以下使用面向對象思路的代碼:

string s = "12.14";

bool format = true;

int precision = 2;

char symbol = '$';

if (s.LastIndexOf(symbol) > 0)

{

//貨币負号非法

format = false;

}

s = s.Replace(symbol, ' ');

if (s.LastIndexOf('.') > 0)

//負号非法

s = s.Replace("-", "");

if (s.LastIndexOf('.') > -1 && s.Length - s.LastIndexOf('.') > precision + 1)

//精度非法

string tmpStr = s.Replace(".", "");

for (int i = 0; i <= tmpStr.Length - 1; i++)

if (!char.IsNumber(tmpStr[i]))

//有非數字的字元

break;

if (s.Split('.')[0] != int.Parse(s.Split('.')[0]).ToString())

//整數的前導有0

System.Console.WriteLine(format);

上述的代碼結構非常清晰,編寫者抓住了需求的本質是檢查數字的合法性,是以在代碼的編寫過程中将那些影響數字的字首都一一過濾,以可以實作結構合理的代碼塊了。

本文轉自shyleoking 51CTO部落格,原文連結:http://blog.51cto.com/shyleoking/805133

繼續閱讀