我的应用程序实现了访问者模式。我有几个不同的访问者实现相同的界面,我正在尝试确定为每个访问者定义访问方法的最佳位置。
我首先假设最好有一个.cpp文件,其中包含单个访问者的所有定义(每个访问者一个文件)。这种方法导致每个访问者定义文件包含相当多的#include指令,用于访问元素和每个访问方法所需的任何支持函数。
或者,我可以在.cpp文件中为每个访问者定义访问方法,其中包含每个元素的定义,使用此方法所需的include指令已经存在(因此不会重复),但访问者标题除外。访问者标题只包含每个元素的前向声明,因此这种方法的好处是所包含的标题的数量总体上减少了。
elementa.cpp
#include ...
ElementA specific stuff.
#include ...
void ElementA::accept(Visitor &visitor) {
visitor.visit(*this);
}
void VisitorA::visit(ElementA &element)
{
//do cool stuff
}
void VisitorB::visit(ElementA &element)
{
//do other cool stuff
}
我的问题是,以这种方式在单个文件中定义多个类的方法是否可接受/通用?
答案 0 :(得分:0)
由于两个原因将访问者函数放在元素类中高度不正常