T
tuti
Unregistered / Unconfirmed
GUEST, unregistred user!
以有些结点支持delete,copy,另一些结点只支持delete为例。
=====================================================
当有了新操作以后, 可在 TAbstractVisitor里的增加虚方法
=====================================================
我觉得问题的关键就在于定哪些方法?
如果在定义了delete和copy两个方法,那该类设计就是采用了,
“透明原则”。虽然不支持copy的结点,在acceptvisitor时确实
可以不调用visitor的copy方法。 但问题是,当你提取单个结点时,
根本不知道,该结点实例是否支持copy方法。虽然该结点类,支持visitor接口。
在“透明原则”下,根本无法表明,究竟支持了visitor中的哪些方法。
在我看来还是无法解决楼主,又要“安全性”,又要“透明性”的问题。
=====================================================
当有了新操作以后, 可在 TAbstractVisitor里的增加虚方法
=====================================================
我觉得问题的关键就在于定哪些方法?
如果在定义了delete和copy两个方法,那该类设计就是采用了,
“透明原则”。虽然不支持copy的结点,在acceptvisitor时确实
可以不调用visitor的copy方法。 但问题是,当你提取单个结点时,
根本不知道,该结点实例是否支持copy方法。虽然该结点类,支持visitor接口。
在“透明原则”下,根本无法表明,究竟支持了visitor中的哪些方法。
在我看来还是无法解决楼主,又要“安全性”,又要“透明性”的问题。