考虑一个基本上像这样结构的程序:
ClassA,B和C在父/子关系中逻辑地组合在一起,并且它们从不公开它们的私有属性。只需使用这三个组件,该程序就会非常有意义(并且可以编译和运行)。但是,为了使程序特别有用,用户需要能够在程序运行时更改所有属性,因此需要“控制”对象,例如可以是Windows窗体。控件应该被视为一种幻像:它应该具有改变属性的能力,但就程序的其余部分而言,它不存在。问题是,我不知道如何在不改变主程序的基本结构的情况下做到这一点(基本上将所有属性公开)。
所以我的问题实际上是在一般的编程层面:这种结构是否有名称,如果是这样,它是如何实现的?如果没有,是否有更好的方法来实现我的目标?
编辑:由于解决方案可能取决于语言,因此假设核心程序是完全跨平台的c ++,并且控件是针对任何特定平台编程的某种类型的GUI。
答案 0 :(得分:0)
我认为您正在寻找Publish-Subscribe Pattern
在大多数情况下,您的属性应该是私有的,并且您应该在必要时公开getter / setter。