面向对象编程中的关键概念与关系解析
1. 编程方法与用户界面设计
在编程领域,为了鼓励现有解决方案的复用,面向对象编程常采用自底向上的方法。这种方法是将已有的部分解决方案(模块)组合起来形成完整的解决方案。若针对特定问题的模块不存在,则需先开发这些模块。不过,这种方法的难点在于需要提前知晓哪些模块会有用,因为有些开发出来的方法可能最终被证明是无用或多余的。在实际操作中,往往会结合自顶向下和自底向上的过程,同时,对于那些虽能运行但代码可读性不佳的解决方案,应毫不犹豫地进行重构。
如今,交互式应用的用户期望通过图形用户界面(GUI)来使用应用程序。由于对易用性的要求很高,应用开发中相当一部分精力都投入到了GUI的设计上。而且,用户希望不同应用的操作方式相似,这使得诸如窗口、菜单、按钮、输入字段等界面元素在各种应用中都很常见。
将应用程序的编程逻辑与用户界面尽可能分离有诸多原因。以开发大富翁(Monopoly)游戏软件为例,该应用的“业务逻辑”由游戏规则决定,描述了游戏的进行方式、玩家的权利和义务等。而该应用向用户呈现的方式有多种变化:
- 应用仅在屏幕上显示原始游戏的图像,用户通过各种图形控件进行游戏。
- 应用用于让不同的游戏策略相互竞争。应用先确定玩家数量并为每个玩家提供特定策略,之后游戏自动运行,用户无需进一步交互,最终仅宣布获胜玩家。这种情况下,可能只需要非常简单的GUI,甚至可以完全不用。
分离业务逻辑和用户界面的重要原因如下:
1. 大富翁的例子表明,同一业务逻辑或其部分内容可能用于多个应用。
2. 不同操作系统平台对GUI元素的结构有特定规则。若要使应用在多个平台可用,就必须能够更换GUI,而只有当业务逻辑和G