合成模式中有可能存在二个对象,Composite对象和Leaf对象,Composite对象中能包含Composite对象和Leaf对象,但是Leaf却只能独立存在。在运用合成模式进行建模时候,必须要掌握两个思想,一,在设计对象组的时候,既应该可以包容单个的基本对象,也可以包容其它的对象组。二、单个的基本对象和对象组都应该定义公共的行为,并将这个对象组描述为包容了这个类型的对象的集合。
C#设计模式读书笔记之合成模式

在合成模式的原型图中,涉及到三个角色:
1、抽象构件(Component),这是给出的一个公共接口,规定了参与组合的对象的默认行为。
2、合成构件(Composite),参加组合的有子对象的对象,并给出了合成构件的行为。
3、基本构件(Leaf),参加组合的没有子对象的对象。

合成模式根据所实现的接口的不同。分为了安全模式和透明模式,
安全模式是指在Composite构件中实现管理子类对象的方法,如Add,Remove,GetChild等方法,这样在Leaf中就无法实现这些方法,即使有实现也不能通过编译,这样就达到了代码的安全。不够透明,Composite和Leaf对象使用不同的接口

C#设计模式读书笔记之合成模式

 1C#设计模式读书笔记之合成模式using System;
 2C#设计模式读书笔记之合成模式using System.Text;
 3C#设计模式读书笔记之合成模式using System.Collections;
 4C#设计模式读书笔记之合成模式
 5C#设计模式读书笔记之合成模式// "Component"
 6C#设计模式读书笔记之合成模式abstract class Component
 7}

透明模式,是指在接口中给出所有管理子类的方法,在Composite和Leaf中都能实现这些方法,但是如果在Leaf类中不正确的实现了这些方法,将不能在编译中被检查出来,而在运行时报错。
C#设计模式读书笔记之合成模式

 1C#设计模式读书笔记之合成模式using System;
 2C#设计模式读书笔记之合成模式using System.Text;
 3C#设计模式读书笔记之合成模式using System.Collections;
 4C#设计模式读书笔记之合成模式
 5C#设计模式读书笔记之合成模式// "Component"
 6C#设计模式读书笔记之合成模式abstract class Component
 7}

以上全部是借的吕老师的代码,下面的就是我自己写的了。两点了,也来不及测试了。明天再看看。
 1C#设计模式读书笔记之合成模式using System;
 2C#设计模式读书笔记之合成模式using Systme.Collection;
 3C#设计模式读书笔记之合成模式
 4C#设计模式读书笔记之合成模式abstract class Component
 5

相关文章:

  • 2019-07-15
  • 2021-06-06
  • 2021-06-05
  • 2021-08-02
  • 2021-10-08
  • 2021-04-02
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-08
  • 2022-01-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案