- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于使用 isEnabled 方法的单例的良好接口(interface)有什么想法吗?
例如,我有一个 UDPClient 并且只想创建一次套接字,所以我将其设置为单例。如果配置要求启用该应用程序,我希望该应用程序继续运行,但它不能。
我能否比此客户端代码和由此产生的单例实现做得更好? (如果我搞砸了单例,请纠正我)。如果它有任何不同,将在网络应用程序中使用。
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");
}
最佳答案
如果您希望它是一种即发即忘的东西,即使它不可用,那么您可以减轻客户端的负担,只需将 send()
单例上的方法。
通过这样做,您可以让单例进行检查,如果为空则不发送。
public class UDPConnectionManager {
private UDPConnectionManager() { ... }
public static UDPConnectionManager instance() { ... }
public void send(String message) {
if(udp != null) {
udp.send(message);
}
}
}
Don't make the client do anything the module could do (PDF,第 27 页)
关于Java Singleton - IsEnabled?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6918214/
我想在按钮 IsEnabled == False 时更改按钮图像. 下面是我的示例,绑定(bind)很好,当我将它们更改为 False/True 时它仍然无法正常工作。
对于使用 isEnabled 方法的单例的良好接口(interface)有什么想法吗? 例如,我有一个 UDPClient 并且只想创建一次套接字,所以我将其设置为单例。如果配置要求启用该应用程序,我
在我的应用程序中,我有一个想要基于数据上下文中的枚举启用/禁用的TextBox。枚举有三个值(Anyone,Me,Someone),设置值“Someone”时,我想启用文本框。我可以通过反向设置值来破
我想我发现了 DatePicker 的问题在工具包中,也许你们中的一些大师可以检查一下。 问题是在设置 IsEnabled 时DatePicker 的属性(property).如果在 XAML 中设置
我需要在 WPF 中构建伪模式对话框。也就是说,由于某些特定(技术)原因,不允许软件生成模式对话框。相反,用户应该在必要时与“嵌入式”模式对话框进行交互。 我找到了一个与 MVVM 配合良好的解决方案
我在工具栏上有带按钮的命令。 我有可见性按钮的逻辑。 在某些情况下,逻辑不是由 eclipse 触发的。 当我移动到新的 Eclipse ( luna ) 时发生这种情况 这是 list
我想检查 QLabels 状态并对该控件执行操作。我有一个标签,我想在这个标签上使用 isEnabled() 函数(或类似的函数)。 我尝试在标签上使用 isEnabled() 但它不起作用,而且我找
我在进程外使用 SLAB 在我的应用程序中记录 ETW 事件。 今天我在 WcfTestClient.exe 下托管的 WCF 服务中遇到问题 当我将断点放入我的 EventSource 继承类的 W
我有一个自定义的适配器,我在其中覆盖了isEnabled()方法。 我注意到当调用该方法时,它会被调用,touch down 和 on,touch up。如果您想执行某些操作,这会有点烦人。 假设您展
我正在使用 Xamarin.Forms 并在(非常慢的)Android 模拟器中对其进行测试。 当我开始登录过程时,我会显示一个 ActivityIndicator,然后将一个按钮设置为 IsEn
我想获取启用了复选框的字符串列表。但是当我使用 isEnabled() 时,即使对于禁用的复选框,它也总是返回 true。在输出中,我得到了该字段中存在的所有字符串的列表。 下面是我为它写的代码:-
我正在使用下面的代码来禁用 ListView 项目。现在,问题是在禁用一个项目后,如果用户单击另一个项目,它会禁用当前项目,但会从禁用中删除最后一个项目。 如何预防这个问题? int pos;
我已经尝试了无数种方法到星期天让它工作,但我显然错过了一些东西,因为我的“Register”按钮是无论我做什么,都不会启用。 在我的 XAML 中: -->
我有下一个问题,我正在处理小型 c#-wpf 应用程序,在加载时,我禁用了通常用于在点击时执行某些操作的按钮,它看起来像这样: public MainWindow() { Initialize
我的程序中有一个 xaml 窗口,它有一个名为“保存”的按钮和一个 textBox。我还有一个用于此窗口的 ViewModel。在 ViewModel 中,textBox 有一个 string 属性,
我正在寻找一个问题,当我启动我的程序时,在我的代码完全初始化并准备好处理它们之前,我立即在 slider 上获取 ValueChanged 事件。 slider 的 XAML 是 ...请注
我只是在寻找一种在父控件具有 IsEnabled = false 时启用子控件的方法。到目前为止,我找到的所有答案都说这是不可能的 - 必须启用父控件并禁用子控件,但仍应启用的控件除外。 但是,通过覆
这是我的 Button 声明,用 .xaml 文件编写: 无论用户是否
我有一个 Button 及其样式: 但是当我启用按钮 (MyBtn.IsEnabled = true) 时,它不
我对 WPF 中的 Window.IsEnabled 属性有疑问 - C# 5.0、.NET4.5。 我有以下场景(简化): 1) 带按钮的表单 2) 用户触发一个长计算操作(从数据库中获取一些数据)
我是一名优秀的程序员,十分优秀!