我已阅读关于状态模式的内容,现在我正在通过探索实现它的Swing应用程序(exple:calculator)来深入了解我的知识。Java中的状态模式
我在哪里可以找到这样的教程?
它必须展示一个使用Swing的非常简单的应用程序。我对国家模式如何在Swing项目中使用感到困惑?
我已阅读关于状态模式的内容,现在我正在通过探索实现它的Swing应用程序(exple:calculator)来深入了解我的知识。Java中的状态模式
我在哪里可以找到这样的教程?
它必须展示一个使用Swing的非常简单的应用程序。我对国家模式如何在Swing项目中使用感到困惑?
我真的不认为一个计算器应用程序是一个很好的匹配状态模式。一个简单的计算器没有太多的状态,可能会打开/关闭,但这太微不足道了。绘图工具是更好的搭配。
如果你真的想开发一个基于状态模式的计算器,你真的需要很有创意。但为什么不呢?你能发明/实施一个计算器,其中的基本操作(加法,减法,乘法,除法)的模式(状态):
public enum Modes {ADDITION, SUBTRACTION, MULITPLICATION, DIVISION}
public interface Mode {
double calculate(double a, double b);
}
public class AdditionMode implements Mode {
public double calculate(double a, double b) {
return (a+b);
}
}
// similiar classes for other math operation modes
public class Calculator {
private Mode mode;
public setMode(Modes mode) {
switch (mode) {
case ADDITION: this.mode = new AdditionMode();
// ...
}
}
public double calculate(double a, double b) {
return mode.calculate(a, b);
}
}
这是一个非常简单和基本的草案,当然,不包括视图部分(Swing对话框或其他)。在对话框中,您可以使用四个单选按钮来设置模式,一个用于捕获输入的文本字段和一个用于打印实际结果的文本字段或标签。
thx 4的回复。我真的很喜欢在Swing对话框中看到如何做到这一点。我做了一些事情,但我不确定我的代码是否遵循了很好的标准,这就是为什么我想看看别人的代码。 – Attilah 2010-07-21 09:57:37