我的 Controller 类中有一个名为 handlePathChange() 的虚函数。
它检查当前的 URL 并应该为它分派正确的视图。
这是我到目前为止的代码:
void Controller::handlePathChange()
{
if ( app->internalPathMatches(basePath) )
{
string path = app->internalPathNextPart(basePath);
if ( path.empty() ) // If it's empty it is known that the index of the controller should show up
index();
// else if ( path == ?? ) each controller has it's own routes
// call_some_unknown_function();
}
}
我如何概括这一点?
我在考虑两个选择:
- 调用一个名为 dispatch() 的纯虚函数,它将匹配派生类中正确函数的正确路径。该解决方案违反了 DRY,因为基本上您将一遍又一遍地编写相同的代码。
- 创建 std::function 的哈希映射,但如果 url 的一部分是参数,则不会找到视图。所以这个选项还不够好。
有任何想法吗?