我可以使用什么设计模式生成“上下文相关”的右键菜单?我想到了一个类似“Windows资源管理器”的应用程序,用户可以右键单击文件夹并获取菜单项列表,但右键单击驱动器并获得完全不同的列表。 我应该使用什么设计模式?工厂的设计模式是否适合处理这样的菜单? 问候, SEB
答案 0 :(得分:4)
您可以查看visitor pattern以及builder-和factory-pattern。在伪代码中,您可以执行以下操作:
OnRightClick(Item ClickedItem) {
ContextMenu = MenuBuilder.Visit( ClickedItem );
Choice = ContextMenu.Show();
}
MenuBuilder
将根据其访问的项目构建适当的上下文方法。