基本規範
- 無參數公共建構子:供工具自動實例化,並在建構子中透過 setter 設定預設值。
- 視覺化 Bean:繼承
java.awt.Component 者需實作 getPreferredSize()、getMinimumSize() 回傳預設尺寸。
屬性設計模式
private int speed;
public int getSpeed() { return speed; }
public void setSpeed(int s) { speed = s; }
- 私有實例變數 + 公共 getter/setter,方法名稱遵循
get/set + 首字大寫慣例。
- 屬性變更影響外觀時,在 setter 呼叫
repaint();影響尺寸/位置時呼叫自訂 validateAll() 向上遞歸驗證父容器。
- Bean 不得假設 setter 呼叫順序,必須支援任意順序初始化。
方法(操作)設計
- 每個公開操作對應一個公共方法,如
start()、stop()。
- 方法應自包含,不依賴外部先行設定大量屬性或建立連線。
事件模型實作
- 事件類別:繼承
java.util.EventObject,定義靜態常數識別事件類型(如 EXPLODED = 1),提供 getID()。
- 監聽器介面:繼承
java.util.EventListener,為每種事件定義抽象方法(如 void exploded(FireworksEvent e))。
- 註冊/移除監聽器:Bean 提供
addXxxListener/removeXxxListener 方法,內部維護監聽器清單(常用 EventListenerList)。
- 觸發事件:在適當時機建立事件物件,迴圈呼叫監聽器對應方法。
程式碼範例:Fireworks 事件