设计模式阅读备忘笔记-组合模式
2017-10-24 09:58
393 查看
设计模式阅读备忘笔记-组合模式
组合模式将对象组合合成树形结构以标识‘部分-整体’的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。
最近在研究行为树,突然想起来组合模式,就此记录回顾一下。
代码例子如下:
抽象节点
public abstract class AComposite { protected string name; public AComposite (string na) { this.name = na; } public abstract void Add(AComposite ac); public abstract void Remove(AComposite ac); public abstract void Display(int depth); }
依赖抽象的叶子节点,叶子节点没有子节点
public class Leaf : AComposite { public Leaf(string na) : base(na) { } public override void Add(AComposite ac) { } public override void Display(int depth) { //显式名称和级别 Debug.Log(new string('-', depth) + name); } public override void Remove(AComposite ac) { } }
枝干节点,拥有子节点
class Composite : AComposite { public Composite(string na) : base(na) { } // public List<AComposite> children = new List<AComposite>(); public override void Add(AComposite ac) { children.Add(ac); } public override void Display(int depth) { //显式名称和级别,并对下级遍历 Debug.Log(new string('-', depth) + name); foreach (var item in children) { item.Display(depth +1); } } public override void Remove(AComposite ac) { children.Remove(ac); } }
像行为树,便是分出并行,选择,之类的很多种节点,在依赖节点具体实现行为类,具体行为类一般就是叶子节点。这么看来,行为树也就简单了许多!
相关文章推荐
- 设计模式阅读备忘笔记-中介者模式
- 设计模式阅读备忘笔记-代理模式
- 设计模式阅读备忘笔记-装饰模式
- 设计模式阅读备忘笔记-原则
- 设计模式阅读备忘笔记-策略模式
- 设计模式学习笔记-组合模式(转载)
- 设计模式学习笔记--组合实体模式
- [阅读笔记]面向对象的设计法则--法则1:优先使用(对象)组合,而非(类)继承 Favor Composition Over Inheritance
- 【学习笔记javascript设计模式与开发实践(组合模式)----10】
- Head First 设计模式 阅读笔记(一)
- 阅读笔记常见的设计模式之一:单例模式
- 设计模式学习笔记:组合模式
- 设计模式学习笔记——组合模式
- 《Head First 设计模式》学习笔记:迭代器模式与组合模式
- 设计模式笔记九:组合模式
- 设计模式学习笔记十七:组合模式(Composite Pattern)
- 《Head First 设计模式》阅读笔记(五)——单件模式
- [设计模式笔记]二. 结构型模式--9.Composite模式(组合)(一)
- 《Head First 设计模式》阅读笔记(三)——装饰者模式
- 设计模式笔记 8.Composite 组合模式(结构型模式)