我正在设计一个图形应用程序,我决定为其编写自己的菜单。我希望这个菜单独立于平台。目前,我的菜单主要由一些按钮组成。我的问题涉及单击按钮时的事件处理。我的困境是按钮“了解”它存在的上下文。在我看来,如果有一些更大的代码可以创建按钮并处理鼠标事件,则可能需要某种类型的 switch 语句。switch 语句必须根据所单击按钮的唯一定义来调用适当的操作。
我想避免这个 switch 语句。我的第一个想法是让每个按钮都维护一个函数指针,当它被单击时,它可以用来盲目地启动正确的操作。这将消除任何特定于按钮的代码。然而,按钮应该包含任何特定于上下文的信息(例如函数指针),这让我很困扰。我相当缺乏经验,我想知道这是否被认为是糟糕的设计。无论如何,我怎样才能以一种不需要某种类型的 switch 语句并被认为是好的 OOP 设计的方式来设计我的菜单?我想听听您的首选解决方案是什么。
提前致谢!