使用复合材料的设计模式在不同类型的对象进行操作,有没有办法防止不止一次被操作的对象?

我想用复合材料的设计模式在C ++中,以便能够创建和对象组进行操作。 我已经遇到的一个问题是,由于叶片和复合材料的处理方式相同,和复合材料可包括叶和复合材料,这是很可能的要在一次以上时发出一个命令到复合操作的对象。

例如,一个复合组1中包含的对象A和B然后,在复合材料组2中创建包含复合组1和对象A.当复合​​组2被操作时,对象A将被两次手术。 对于某些应用程序我想这是不是一个问题,但我的应用我想,如果,对于发给复合材料的任何命令,独特的对象仅手术一次。

有一种惯用的方式来处理此问题,或者一些如何防止一个对象的成员函数的多个呼叫,或预防对象被包括在一个复合不止一次?

-

更新:通过“惯用的”我的意思是处理这类问题的“传统”或“接受”的方式。 我想我只是假设/希望这是有一个解决方案,建立一个共同的问题。

--------------解决方案-------------

我不知道你所说的成语的意思,而是一个解决方案,将取决于哟如何遍历复合材料的结构。 这里有一些选择

  • 如果你使用一个访问者和记已经访问组件,忽略重复
  • 使用滴答计数和具有复合元素忽略具有相同刻度计数的连续通话
  • 在一个两步骤方法收集所有需要在一组操作上的复合物,然后执行你的操作
  • 两步法的组合对象设置一个标志,意味着当他们被感动了这一轮,清除标志下一轮之前,
分类:C# 时间:2015-03-15 人气:0
本文关键词: C#,设计模式,复合
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.251 (s). 10 q(s)