中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

架構(gou),改善程序復(fu)用性的(de)(de)設(she)計~第三講 實現一種功能(neng)的(de)(de)代碼只能(neng)出現在一處

從標題中可以看到本篇文(wen)章(zhang)將介紹代(dai)碼隨意性的(de)缺點及由此引發的(de)后果(guo),首(shou)先,來說一下同(tong)一功能的(de)代(dai)碼在(zai)多個程(cheng)序中被編寫多次的(de)后果(guo):

1  它(ta)破壞了面向對象的(de)“單一職責”的(de)原則

2  當代(dai)碼邏輯復雜時,或者(zhe)進行二(er)次開(kai)發(fa)時,程序(xu)員將對(dui)方法(fa)調用產生(sheng)歧義(yi),即不知道應該(gai)使用哪(na)個(ge)方法(fa),即代(dai)碼可讀性差

3  當這個不規范的(de)(de)方法邏(luo)輯需要修改時,你將會(hui)進行多(duo)次重復(fu)的(de)(de)調整,這是一(yi)個程序不希望做的(de)(de)事

解決方法:

當(dang)幾(ji)個(ge)模塊需要用到(dao)同(tong)一功能,或者(zhe)功能相似的(de)方(fang)法(fa)時,應該先(xian)將公用的(de)功能抽象成(cheng)(cheng)一個(ge)新的(de)方(fang)法(fa),再把不同(tong)的(de)地方(fang)抽象成(cheng)(cheng)其它方(fang)法(fa),這也就是《重構》中的(de)extract method 。

下面看一下代碼:

不規范的:

View Code
 1 public bool RegisterUser(Userbase entity)
 2         {
 3             bool flag = false;
 4             try
 5             {
 6                 //注冊用戶邏(luo)輯
 7 
 8                //添(tian)加(jia)日志(zhi)邏(luo)輯
 9             }
10             catch (Exception)
11             {
12 
13                 throw;
14             }
15             return flag;
16         }      
規范(fan)的,再(zai)利用率高的,面(mian)向對象的:
View Code
 /// <summary>
20         /// 注(zhu)冊用戶
21         /// </summary>
22         /// <param name="entity"></param>
23         /// <returns></returns>
24         public bool RegisterUser(Userbase entity)
25         {
26             bool flag = false;
27             try
28             {
29                 //注(zhu)冊用戶邏輯
30             }
31             catch (Exception)
32             {
33 
34                 throw;
35             }
36             return flag;
37         }
38         /// <summary>
39         /// 添加日志
40         /// </summary>
41         /// <param name="entity"></param>
42         /// <returns></returns>
43         public bool AddLog(Log entity)
44         {
45             bool flag = false;
46             try
47             {
48                 //添加日志(zhi)邏輯
49             }
50             catch (Exception)
51             {
52 
53                 throw;
54             }
55             return flag;
56         }

 

通過代(dai)碼(ma)我們可(ke)以看(kan)到,不規(gui)范(fan)的代(dai)碼(ma)將多(duo)種功能方法合成(cheng)了一種,屬于(yu)邏輯(ji)混亂了,而規(gui)范(fan)的代(dai)碼(ma)邏輯(ji)清晰(xi),職責(ze)分明,代(dai)碼(ma)重復利用率較高。

posted @ 2012-05-28 23:34  張占嶺  閱讀(3053)  評論(9)    收藏  舉報