【发布时间】:2013-12-11 11:16:10
【问题描述】:
我有一个类,它初始化与我们正在处理的服务器之一的连接,然后订阅服务器上的各种事件,然后在收到订阅通知后在同一台服务器上执行各种事务。
我创建了连接对象static,以便在所有实例中始终打开到服务器的单个连接。问题是服务器上的那些事务只有在收到通知时才需要完成。而且由于我订阅了不同类型的通知,我不知道哪个线程将首先创建类的实例并执行事务。
简而言之,我无法确定将在何时何地创建类实例。但是对于所有这些情况,我希望使用相同的连接。所以我希望在创建任何类实例之前初始化该连接。所以我创建了static init(params) 并通过调用Class.init(params) 初始化了该连接。每次通知发生时,我只需调用默认构造函数对其执行事务。
但不知何故,首先在类上调用init() 方法,然后在某个时间调用默认构造函数以获取实例后某处是我第一次做的事情,因此不知道这是否是正确的方法。
【问题讨论】:
-
C# 但我认为它不会有任何区别
-
每种语言都有自己的语法和规则,因此适用于这种不太常见的情况可能会有所不同。
-
我会看到一个示例代码,但它看起来有点懒惰(对象创建被推迟到最后一刻)。味道不错,你有什么顾虑?
-
单例与否并不会让您“更加 OOP”。 做最适合您的场景的事情(在可读性、性能和可维护性方面)
-
权利可能会让我满意,会考虑更多,否则会提出新问题:p
标签: c# java oop design-patterns