isEnabledメソッドを持つシングルトンの良いインターフェイスに関するアイデアですか?Java Singleton - IsEnabled?
たとえば、私はUDPClientを持っていて、Socketを1回だけ作成したいので、これをシングルトンとして設定します。設定を有効にするように設定してもアプリを続行したいが、できない。
このクライアントコードと結果のシングルトンの実装よりも優れた処理を行うことはできますか? (そして私がシングルトンを台無しにしてしまった場合は私に修正してください)。これは、Webアプリケーションで差があれば使用されます。
public class UDPConnectionManager {
private static final UDPConnectionManager INSTANCE = new UDPConnectionManager();
private UDPClient udp = null;
private UDPConnectionManager() {
try {
InitialContext ic = new InitialContext();
String udpHost = (String) ic.lookup("java:comp/env/udpHost");
Integer udpPort = (Integer) ic.lookup("java:comp/env/udpPort");
Boolean udpEnabled = (Boolean) ic.lookup("java:comp/env/udpEnabled");
if (udpEnabled) {
udp = new UDPClient(udpHost, udpPort);
}
} catch (Exception e) {
log.error("UDP Connection Manager: error while setting up UDP Manager.", e);
}
}
public static UDPConnectionManager instance() {
return INSTANCE;
}
public UDPClient getUDPClient() {
return udp;
}
public Boolean isEnabled() {
return (udp != null);
}
}
クライアント:
UDPClient udpCM = UDPConnectionManager.instance();
if (udpCM.isEnabled()) {
UDPClient udpClient = udpcCM.getUDPClient();
udpClient.send("test");
}
私はこれが好きなので、私はそれをupvoted。問題は、5つの他のメソッドがあることは言及していないことです。ヌルテストではない場合は、送信する必要があります。 5方法はそれほど悪くないです。私はこれについて夜間考える必要があります。洞察に感謝します。 –