2013-01-31 30 views
2

这个幂等原语是否有正确的名称?只能从类中设置你叫什么只能设置标志?

public class Flag 
{ 
    public bool IsSet { get; private set; } 

    public void Set() 
    { 
     IsSet = true; 
    } 
} 
+3

此标志也可以读取...我认为您指的是不对称访问器可访问性。 –

+1

这看起来像C#,你想在Java中的答案? –

+2

粘土平板电脑? ... –

回答

2

我想在e.e.这是一个设置锁存器,而不是一个设置重置(SR)锁存器。

熔断器会是一个持久的版本,需要手动更换其数据库来重置?

+0

我认为保险丝是一个非常接近的匹配,因为如果我需要一个新的“开”标志,我将不得不创建一个新的(即更换保险丝)。 –

+0

我认为模拟电子学和软件之间的类比可能会推动它。当输入电流超过足够的时间时,真正的保险丝会断开(返回空?被破坏?)。不确定如何通过一个过电流布尔没有例如铸造3它:) –

0

,你可以在Java中,如果你认为唯一的方法将被用来做什么是

class Component { 
    private volatile boolean closed = false; 

    public boolean isClosed() { return closed; } 

    public void close() { closed = true; } 
} 

领域是极易挥发,runningclosed标志往往是由不同的线程它是用在一个设定。

注意:即使你犯了一个场final你可以使用反射仍可改变价值,因为它可以绕过安全模型(假设你的安全管理器允许的话,它确实在默认情况下)

+1

感谢您在Java中编写并发代码的回答,它避免了线程缓存问题(它在C#中是一样的)。但是,这个问题比这个更原始,适用于所有支持可变状态的OO语言。我只是在寻找设计模式的名称,如果你愿意的话 - 我确信有电子背景的人必须知道答案;) –

+2

在电子学中,它被称为保险丝。 –

+0

@HenkHolterman我喜欢这个到目前为止:D –

3

tripSwitch或者onSwitch

新增

一个latch可能几乎是你在找什么。

+0

谢谢 - 很好的建议。我很想知道是否有一个明确的“正确答案”,就像我们如何得到'信号量'的名字一样,等等。 –

+0

我喜欢闩锁,但前提是维基百科页面是错误的。 –

+0

@HenkHolterman - 如果你只读了第一句话,它对我有用'闩锁开关是一个在被激活后保持其状态的开关。无论如何,我不同意它的其余部分。 – OldCurmudgeon

相关问题