摘要:本文用一个实例场景描述Gof23设计模式中的合成模式,并用Ruby程序代码给予实现,同时也给出实现代码的UML模型。 关键字:Gof23设计模式合成模式Ruby CompositePatternbasedonRuby RENgang Abstract:ThispapergivesasceneexampletodescribetheuseofCompositePatternofGof23DesignPattern,andachievestheexamplebyRuby,atthesametime,givestheUMLmodelofrealizationoftheexample. Keyword:Gof23DesignPatternCompositePatternRuby 1.标准定义 合成(Composite)模式标准定义:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 2.分析和说明 合成(Composite)模式属于结构型设计模式。它将对象组合成树形结构以表示“整体-部分”的层次结构,定义了包含基本对象和组合对象的类层次结构,使得用户对单个对象和组合对象的使用具有一致性。合成模式就是一个处理对象的树结构的模式。合成模式把部分与整体的关系用树结构表示出来,使得客户端把一个个单独的成分对象和由他们复合而成的合成对象同等看待。 合成(Composite)模式结构如图1所示。其角色包括抽象构件(Component)角色、树枝构件(Composite)角色和树叶构件(Leaf)角色。 图1合成模式结构 抽象构件(Component)角色:这是一个抽象角色,它给参加组合的对象定义出公共的接口及其默认行为,可以用来管理所有的子对象。合成对通常把它所包含的子对象当作类型为Component的对象。在安全式的合成模式里,构件角色并不定义出管理子对象的方法,这一定义由树枝构件对象给出。为用户操作Leaf类和Composite类提供一致的方法,它主要定义了Operation(),Add(Component),Remove(Component),GetChild(int)几个方法,其中,Add(Component),Remove(Component),GetChild(int)的责任是对“整体”(Composite类)进行操作;Operation()是“部分”(Leaf类)和“整体”(Composite类)都需要的方法。 树枝构件(Composite)角色:代表参加组合的有下级子对象的对象。树枝构件类给出所有的管理子对象的方法,如add()、remove()以及北京中科医院正规吗北京治疗白癜风哪家医院好一点
|