【发布时间】:2014-02-13 13:53:35
【问题描述】:
我对对象数据共享有一些想法。
- 让我们用属性p1、p2定义类C(让我们认为它是不可变的)。
- 让我们有一些 C 类的对象 X 和 Y。
- 让我们为 C 类的对象创建某种“容器”G。 “容器” G 具有属性 gp1。
- 让我们将对象 X 添加到“容器”G 并使用 G.gp1 值“绑定”X.p1。 (Bind 确实说当对象 X 尝试获取属性 p1 的值时,它会获取 gp1 的值。)
- 让我们将对象 Y 添加到容器 G 并使用 G.gp1 值“绑定”Y.p1。
您可能认为这对人类来说很简单。
我想到的唯一想法是为 p1, p2 属性访问创建接口。然后在Class C(无共享数据)和Class GC(有容器数据)中实现接口。然后装饰对象添加方法。
如您所见,每个绑定都添加了一个接口 + 接口实现。写的太多了,有点丑。
问题: 如何为每个对象创建这种绑定操作? (不实现 DSL,使用 C 派生语言:java、C#、C++、php、...)
【问题讨论】:
-
在类中有一个字段并通过getter返回另一个类中的另一个字段是什么意思?这是非常危险的建筑。
-
它可能是一个虚拟字段。
标签: oop