【发布时间】:2020-05-22 04:51:38
【问题描述】:
python 中有一个名为“events”的模块,我们可以从中导入一个名为“Events”的对象。 URL for events module
对象可以向对象注册回调方法,其他对象可以调用事件的成员。例如。如下图:
from events import Events
#Implementation of Events
class EventGroup(Events):
__events__ = ('eventOne', 'eventTwo', 'eventThree')
eventGroupOne = EventGroup()
#This class subscribes to the events
class Subscriber():
def __init__(self):
eventGroupOne.eventOne += self.onEventOne
def onEventOne(self):
print("EventOne invoked")
#This class invokes the events
class Invoker():
def someFunction(self):
eventGroupOne.eventOne()
我们如何在类图 UML 中显示 EventGroup、Subscriber 和 Invoker 类之间的关系?
【问题讨论】:
-
由于您使用在
__main__中声明的全局变量,因此您没有纯 OO 方法。因此,基于此处可以回答的内容,任何事情都是意见。所以我撤回了我的意见并投票结束。 -
@qwerty_so :没有必要撤回您的答案。我以同样的方式开始我的类图,但我觉得有更好的答案。但是,这是你的决定,我尊重它。
-
您介意告诉您建议对上述代码进行哪些更改以使其成为 OO 吗?
-
对不起,我可能会在这里问一个非常基本的问题。让我们忘记这里的 main。我在上面的代码中所做的就是导入一个模块,定义三个类,并实例化一个对象。这还不足以在不违反 OOP 的情况下创建类图吗?
-
没有。你突然使用
eventGroupOne。它应该是一个类的属性。但事实并非如此。
标签: python uml object-oriented-analysis