0

考虑一个基本结构如下的程序:

结构图

ClassA、B 和 C 在逻辑上以父/子关系组合在一起,并且它们从不暴露其私有属性。仅使用这三个组件,该程序将非常有意义(并且可以编译和运行)。然而,为了使程序特别有用,用户需要能够在程序运行时更改所有属性,因此“控制”对象,例如可以是 Windows 窗体。控件应该被视为一种幻象:它应该具有更改属性的能力,但就程序的其余部分而言,它不存在。问题是,我不知道如何在不改变主程序的基本结构的情况下做到这一点(本质上是公开所有属性)。

所以我的问题实际上是在一般编程级别上:这种结构是否有名称,如果有,它是如何实现的?如果没有,是否有更好的方法来解决我正在尝试做的事情?

编辑:由于解决方案可能取决于语言,假设核心程序是完全跨平台的 c++,并且控件是为任何特定平台编程的某种类型的 GUI。

4

1 回答 1

0

我认为您正在寻找发布订阅模式

在大多数情况下,您的属性应该是私有的,并且您应该在必要时公开 getter/setter。

于 2013-10-07T20:55:09.853 回答