turnstyle.java
来自「著名的uncle Bob的Agile software development的」· Java 代码 · 共 102 行
JAVA
102 行
public class Turnstyle
{
private static boolean isLocked;
private static boolean isAlarming;
private static int itsCoins;
private static int itsRefunds;
protected final static Turnstyle LOCKED = new Locked();
protected final static Turnstyle UNLOCKED = new Unlocked();
protected static Turnstyle itsState = LOCKED;
public void reset()
{
lock(true);
alarm(false);
itsCoins = 0;
itsRefunds = 0;
itsState = LOCKED;
}
public boolean locked()
{
return isLocked;
}
public boolean alarm()
{
return isAlarming;
}
public void coin()
{
itsState.coin();
}
public void pass()
{
itsState.pass();
}
protected void lock(boolean shouldLock)
{
isLocked = shouldLock;
}
protected void alarm(boolean shouldAlarm)
{
isAlarming = shouldAlarm;
}
public int coins()
{
return itsCoins;
}
public int refunds()
{
return itsRefunds;
}
public void deposit()
{
itsCoins++;
}
public void refund()
{
itsRefunds++;
}
}
class Locked extends Turnstyle
{
public void coin()
{
itsState = UNLOCKED;
lock(false);
alarm(false);
deposit();
}
public void pass()
{
alarm(true);
}
}
class Unlocked extends Turnstyle
{
public void coin()
{
refund();
}
public void pass()
{
lock(true);
itsState = LOCKED;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?