所以我有一个巨大的(遗留)文件,称之为 HUGE.cxx。我正在添加新功能,但文件变得越来越大。我尝试为不同的工作创建不同的类,但对于某些任务,我需要访问私有变量。这是正在发生的事情的粗略草稿
//HUGE.h
class Huge{
NewFeature object;
//...more stuff
};
//HUGE.cxx
Huge::Huge(){
//imagine object keeps track of id->func callback
object.on('uniqueID1', boost::bind(&HUGE::onID1Clicked,this));
}
void Huge::onID1Clicked()const{ return satisfiesSomeCondition(); }
//called internally when user right clicks
void Huge::createPopup()const{
for itr = object.begin to end
callback = itr->second;
//if satisfies condition add to popupmenu
if(callback()) addToPopupMenu( itr->first );
}
//event handler
void Huge::event(id){
//oh uniqueID1 was clicked as a menu item in right click
case 'uniqueID1': doSpecificFunctionality(); break;
}
所以你看,我有一些依赖项,但是文件太大了,我的更改也是如此。您对进一步分离成更多文件有什么建议吗?我知道我可以向 Huge 文件添加一个朋友声明并添加另一个类,但如果可能的话想避免这个选项。