基于ERP程序的公共代碼中出現(xiàn)的問題及過度封裝不方便維護(hù)的解決辦法
在設(shè)計(jì)一個(gè)ERP程序時(shí),提取公共的代碼到一個(gè)通用類型庫中是必要的。這樣可以減少代碼重復(fù),提高代碼利用率。
但是,做任何事情都要有個(gè)度,有些公共的代碼引起了過度封裝,反而不利于代碼的理解。
舉例說明如下
public class ConfigHelper
{
/// <summary> /// Gets whether the specified path is a valid absolute file path. /// </summary>
/// <param name="path">Any path. OK if null or empty.</param>
static public bool IsValidPath(string path)
{
Regex r = new Regex(@"^(([a-zA-Z]:)|(\))(\{1}|((\{1})[^\]([^/:*?<>""|]*))+)$");
return r.IsMatch(path);
}
public static string GetString(string key)
{
return System.Configuration.ConfigurationManager.AppSettings[key];
}
}
第二個(gè)方法 GetString,我以為它的封裝是不必要的。調(diào)用.NET框架的代碼只有一行或簡單的數(shù)行,對它進(jìn)行封裝,反而會引起理解上的障礙。
再來看另一個(gè)方法,對它的封裝,要依據(jù)具體的使用場景。
public static decimal GetDecimal(string key)
{
decimal value = default(decimal);
if ((decimal.TryParse(GetString(key), out value)))
{
return value;
}
else
{
return 0m;
}
}
這個(gè)方法實(shí)現(xiàn)的功能是:把一個(gè)字符串轉(zhuǎn)化為數(shù)字類型,如果它的值不為數(shù)字類型的,則返回默認(rèn)值0。
根據(jù)需要的場景,這個(gè)封裝有可能是有必要的,可以減少很多重復(fù)的代碼。
歡迎大家給出意見,我覺得這個(gè)GetDecimal方法也是多余的,不必要的封裝。
相關(guān)文章
ASP.NET Core中如何使用表達(dá)式樹創(chuàng)建URL詳解
這篇文章主要給大家介紹了關(guān)于ASP.NET Core中如何使用表達(dá)式樹創(chuàng)建URL的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10asp.net實(shí)現(xiàn)文件無刷新上傳方法匯總
本文給大家介紹的是asp.net實(shí)現(xiàn)文件無刷新上傳的2種方法,分別是使用swfupload插件和uploadify插件,講述的十分細(xì)致全面,附上示例,有需要的小伙伴可以參考下。2015-06-06ASP.NET MVC分頁和排序功能實(shí)現(xiàn)
這篇文章主要介紹了MVC學(xué)習(xí)系列之分頁和排序功能實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07ASP.NET 圖片防盜鏈的實(shí)現(xiàn)原理分析
防盜鏈的原理,從圖片請求的URL地址上判斷是否是我們自己網(wǎng)站上的域名,如果不是,恭喜,你的圖片已經(jīng)被盜鏈了!2010-01-01asp.net實(shí)現(xiàn)在XmlTextWriter中寫入一個(gè)CDATA的方法
這篇文章主要介紹了asp.net實(shí)現(xiàn)在XmlTextWriter中寫入一個(gè)CDATA的方法,結(jié)合實(shí)例形式分析了XmlTextWriter寫入CDATA的步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-04-04