我有一个类,它初始化与我们正在处理的服务器之一的连接,然后订阅服务器上的各种事件,然后在收到订阅的通知后在同一服务器上执行各种事务。

我将连接对象设置为静态,以便在所有实例中始终打开与服务器的单个连接。问题是服务器上的那些事务只有在收到通知时才需要完成。由于我订阅了不同类型的通知,因此我无法判断哪个线程将首先创建该类的实例并执行事务。

简而言之,我无法判断类实例将在何时何地创建。但对于所有这些实例,我希望使用相同的连接。所以我希望在创建类的任何实例之前初始化该连接。因此,我创建了 static init(params) 并通过调用 Class.init(params) 初始化该连接。每次发生通知时,我只需调用默认构造函数即可对其执行事务。

但是,不知何故,首先在类上调用 init() 方法,然后在某个地方调用默认构造函数来获取实例,这是我第一次做的事情,因此不知道这是否是正确的方法.

请您参考如下方法:

在 java 中,您可以使用 static{} 语句(不是方法,而是在类实例化之前执行的静态代码块)...在 C# 中,我不知道如何做到这一点。

但是......为什么你不使用单例模式进行连接?


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!