假设我有一个Python模块来控制视频会议系统。在这个模块中,我有一些全局变量和函数来控制视频会议、通话、电话簿等的状态
为启动控制系统,模块自行执行初始化视频会议的功能(以太网连接、轮询状态等)
现在,如果我需要开始控制第二个视频会议系统,我不知道如何解决这个问题:我想把视频会议模块变成一个类,创建两个实例(每个视频会议系统一个),然后初始化它们,但问题是我不需要有两个视频会议类的实例,因为我不会对这些对象做任何事情,因为我只需要初始化系统;在那之后,我不需要再打电话给他们,也不需要留着他们做其他的事
示例代码:
视频会议.py
class Videoconference:
def __init__(self):
self.state = 0
#Initialization code
主.py
from Videoconference import Videoconference
vidC1 = Videoconference()
vidC2 = Videoconference()
#vidC1 and vidC2 will never be use again
所以,问题是:我是否应该将视频会议模块转换为类并创建实例(如示例中所示),即使我不打算将它们用于初始化过程的任何其他方面?或者有没有其他不创建类的解决方案
这听起来像是
VideoConferenceSystem
对象的完美用例。你说你有globals(ew!)统治国家(恶心!)并调用函数进行控制听起来你有机会把这些都转换成一个对象,这个对象有保存状态的属性和改变状态的方法。听起来您应该重构的不仅仅是初始化代码,所以那些
vidC1
和vidC2
对象很有用也许这是一个偏好的问题,但我认为在上述情况下拥有一个类将是更安全的赌注。通常我会写一个函数,当它变得太复杂的时候,我会认为我应该创建一个类(并且经常这样做),但是我从来没有创建过一个太简单的类,并且认为这太简单了为什么我不创建一个函数呢
即使只有一个对象而不是两个对象,创建类通常也有助于提高可读性。例如:
我认为你以你的例子来处理这个问题是正确的。这样,您可以有多个视频会议,每个视频会议可能具有不同的属性状态(例如vidC1.conference\u duration等)
相关问题 更多 >
编程相关推荐