创建一个对象,该对象的方法延迟到另一个对象执行[Python]

时间:2015-05-27 05:58:42

标签: python oop design-patterns

为了解释它并且为了简单起见,我将使用电源域示例 想象一下,你有多台设备。全部插入一个带有多个插头的电源板。可以通过以太网或其他方式控制电源板。在所有这些中,有 一个且只有一个 ,它们实际上可以打开和关闭电源。尽管如此,我希望其余的设备部件出现在#34;因为能够控制电源开关。在编程上,这些函数可能类似于:

pwr.poweron()  # this instance can do the actual poweron/poweroff via remote control
eq1.poweron()
eq2.poweron()

其中eq1, eq2是某个类的实例。只有出现才能控制权力eq1 and eq2。实际上,他们将执行poweron/poweroff推迟到实例pwr。 你会如何在Python中设计这样的类?

1 个答案:

答案 0 :(得分:3)

例如:

class Pwr(object):

    def __init__(self):
        pass

    def poweron(self):
        pass

class Eqp(object):

    def __init__(self, pwr):
        self.pwr = pwr

    def poweron(self):
        self.pwr.poweron()

pwr = Pwr()
eq1 = Eqp(pwr)
eq2 = Eqp(pwr)