技术开发 频道

.NET实用设计模式:组合模式(Composite)

【IT168技术文档】组合模式(Composite)是一种“结构型”模式(Structural)。结构型模式涉及的对象为两个或两个以上,表示对象之间的活动,与对象的结构有关。

先举一个组合模式的小小例子:




如图:系统中有两种Box:Game Box和Internet Box,客户需要了解者两个类的接口分别进行调用。为了简化客户的工作,创建了XBox类,程序代码如下:

GameBox的代码:
public class GameBox { public void PlayGame() { Console.WriteLine("plaly game"); } }
InternetBox的代码:
public class InternetBox { public void ConnectToInternet() { Console.WriteLine("connect to internet"); } public void GetMail() { Console.WriteLine("check email"); } }

XBox的代码:

public class XBox { private GameBox mGameBox=null; private InternetBox mInternetBox=null; public XBox() { mGameBox = new GameBox(); mInternetBox = new InternetBox(); } public void PlayGame() { mGameBox.PlayGame(); } public void ConnectToInternet() { mInternetBox.ConnectToInternet(); } public void GetMail() { mInternetBox.GetMail(); } }
XBox中封装了GameBox和InternetBox的方法,这样,用户面对的情况就大大的简化了,调用的代码如下:
public class CSComposite { static void Main (string[] args) { XBox x = new XBox(); Console.WriteLine("PlayGame!"); x.PlayGame(); Console.WriteLine(); Console.WriteLine("Internet Play Game!"); x.ConnectToInternet(); x.PlayGame(); Console.WriteLine(); Console.WriteLine("E-Mail!"); x.GetMail(); } }

可以看见,用户只需要了解XBox的接口就可以了。

0
相关文章