我应该在创建任何实例之前调用静态init()

时间:2013-12-11 11:16:10

标签: c# java oop design-patterns

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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