最近看了下Composite组合模式,自己在应用产生了一些疑惑:
为方便说明,就以组合模式中典型的树状结构为例。
当对树的根节点进行一个操作时,会遍历该树的所有子节点并对其进行同样的操作。我的疑问就在这里,如果该操作是GRUD操作的话,那不是要执行多次?这样效率岂不是很低?
请问该如何解决这样的问题呢?
最近看了下Composite组合模式,自己在应用产生了一些疑惑:
为方便说明,就以组合模式中典型的树状结构为例。
当对树的根节点进行一个操作时,会遍历该树的所有子节点并对其进行同样的操作。我的疑问就在这里,如果该操作是GRUD操作的话,那不是要执行多次?这样效率岂不是很低?
请问该如何解决这样的问题呢?
[quote]比如是要将一个机构树下面所有的员工薪水+1000这样的操作[/quote]
如果机构下有100个人,就要更新数据库100次,在这里用Composite模式就不合理了,这时机构在这里最多只能看成一个“叶子”,不能看成“节点”。你可以提供对这个机构的操作,但是再往下分在这里就不合理了。
总之: 设计模式是为你服务的,你可以选择用还是不用,如果不合适,就不用。