真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C#設(shè)計(jì)模式之命令-創(chuàng)新互聯(lián)

IronMan之命令

創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司一直秉承“誠信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!專注中小微企業(yè)官網(wǎng)定制,網(wǎng)站制作、網(wǎng)站建設(shè),塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。

在本篇中還是圍繞著“IronMan”來講,在上一篇“外觀”中我們說到過“控制中心”。它是負(fù)責(zé)IronMan的核心,所有能想象到的功能都跟它有關(guān)系,
就在使用它的時(shí)候,發(fā)現(xiàn)了一些問題,比如使用它來命令部件做一些操作:

1     /// 
2     /// 控制中心
3     /// 
4     public class CenterController
5     {
6         public void Attact()
7         {
8             ComponteCase comCase = new ComponteCase();
9             comCase.Attact();
10         }
11     }
12     /// 
13     /// 部件
14     /// 
15     public class ComponteCase
16     {
17         public void Attact()
18         {
19             Console.WriteLine("示例部件***1");
20         }
21     }

從上面的“控制中心”中可以看出,它是直接使用的部件,如果這時(shí)候要添加、修改或者刪除部件的***方式,那么“控制中心”也要跟著做出修改。 耦合度很大,那怎么樣要使“控制中心”和“部件”之間變得是松耦合呢?

命令模式的定義:將一組行為抽象為對(duì)象,實(shí)現(xiàn)二者之間的松耦合。

1     /// 
2     /// 抽象命令
3     /// 
4     public abstract class Command
5     {
6         public abstract void Execute();
7     }
8     /// 
9     /// 具體命令類(示例部件***命令)
10     /// 
11     public class RealizeCommand : Command
12     {
13         private ComponteCase compontecase = new ComponteCase();
14         public override void Execute()
15         {
16             //業(yè)務(wù)操作等等
17             compontecase.Attact();
18         }
19     }

添加了抽象命令類和具體命令類,具體命令類已經(jīng)代表了一個(gè)命令,就是示例部件***:

1 CenterController centercontroller = new CenterController(new RealizeCommand());
2 centercontroller.Attact();

也可以再新建其它的具體命令類,引用其它部件,使用其***方法,這樣便實(shí)現(xiàn)了動(dòng)態(tài)注入,把控制中心和部件
從緊耦合狀態(tài)改變到了松耦合。
這里會(huì)有人有疑問了,如果要執(zhí)行多個(gè)命令怎么辦?

1     /// 
2     /// 命令板
3     /// 
4     public class CommandList
5     {
6         private List commands = new List();
7         public CommandList() { }
8         public CommandList(Command command)//動(dòng)態(tài)注入
9         {
10             commands.Add(command);
11         }
12         public void AddCommand(Command command)
13         {
14             commands.Add(command);
15         }
16         public void RemoveCommand(Command command)
17         {
18             commands.Remove(command);
19         }
20         public void Execute()
21         {
22             foreach (Command command in commands)
23             {
24                 command.Execute();
25             }
26         }
27     }

添加一個(gè)命令板類,再修改一下控制中心,使得“控制中心”和“抽象命令”間都進(jìn)行消耦,下面再看一下修改后的“控制中心”:

1     /// 
2     /// 命令板
3     /// 
4     public class CommandList
5     {
6         private List commands = new List();
7         public CommandList() { }
8         public CommandList(Command command)//動(dòng)態(tài)注入
9         {
10             commands.Add(command);
11         }
12         public void AddCommand(Command command)
13         {
14             commands.Add(command);
15         }
16         public void RemoveCommand(Command command)
17         {
18             commands.Remove(command);
19         }
20         public void Execute()
21         {
22             foreach (Command command in commands)
23             {
24                 command.Execute();
25             }
26         }
27     }

使用的方式還是和上一個(gè)方式相同,只是上個(gè)方式是把命令動(dòng)態(tài)注入,現(xiàn)在修改成了把命令板動(dòng)態(tài)注入。

命令模式就到這里了。。END

下一篇實(shí)現(xiàn)更佳的可擴(kuò)展的命令模式

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)頁標(biāo)題:C#設(shè)計(jì)模式之命令-創(chuàng)新互聯(lián)
標(biāo)題來源:http://weahome.cn/article/iejcp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部