组合结构包含一下对象:
- Base Component(基础组件) - 基础组件是组合中所有对象的接口,客户端程序使用基础组件来处理组合中的对象。 它可以是一个接口或一个抽象类,包含一些对所有对象都是通用的方法。
- Leaf(叶子对象) - 定义组合中元素的行为。 它是组合的基本组成部分,并且实现了基础组件。 它没有对其他组件的引用。
- Composite(组合对象) – 它由叶元素组成并实现基本组件中的操作。
组合模式基本组件定义了叶子对象和组合对象的基本通用方法。
实现
- Base Component(基础组件)
基础组建是再组合模式中定义了最基本的行为的组件,即在上面提到的Athlete
,Swimmer
等,他是指一个抽象的类应实现的方法
type Shape interface {
Draw(fillColor string)
}
- Leaf(叶子对象)
叶子对象定义了在实现基础组件的对象的具体的行为,比如
type Triangle struct{
}
func (t *Triangle) Draw