我已閱讀關於狀態模式的內容,現在我正在通過探索實現它的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