我使用的是python3,但问题并不是与特定的语言有关。在
我有一个class Table
,它实现了一个带有主键的表。该类的实例包含实际数据(非常大)。在
我希望允许用户通过为表中的行提供过滤器来创建子表。我不想复制表,所以我打算在子表中只保留父表中主键的子集。在
显然,子表只是父表的一个视图;如果父表发生变化,它将发生变化;如果父表被破坏,它将变得无效;如果从父表中删除这些行,它将丢失一些行。[编辑:为了澄清,如果父表被更改,我不关心子表会发生什么;任何行为都可以。]
我应该如何连接这两个类?我在想:
class Subtable(Table):
def __init__(self, table, filter_function):
# ...
我的假设是Subtable
保留Table
的接口,只是稍微重写继承的方法以检查行是否在。这是一个好的实现吗?在
问题是,我不确定如何初始化Subtable
实例,因为我不想复制传递给它的表对象。有可能吗?在
我还想给class Table
一个返回Subtable
实例的实例方法;但这会在Subtable
上创建{
我将使用以下方法(我省略了许多方法,例如sort,它们在这种安排中非常有效;也省略了错误处理):
本质上,我只复制主键,并创建对绑定到它们的数据的引用。如果父表中的一行被销毁,它仍将存在于子表中。如果在父表中修改了行,则在子表中也会修改该行。这很好,因为我的要求是“当父表被修改时,任何事情都会发生”。在
如果你觉得这个设计有什么问题,请告诉我。在
相关问题 更多 >
编程相关推荐