面向對象建模核心指標之一是可復用性。UI 及其事件處理常被忽視復用設計。結合 Command 設計模式與 Java 反射技術,本文設計實現可復用事件處理框架。
UIDemo1:類實現 ActionListener,actionPerformed 中用 equals 判斷事件源,耦合度高。
UIDemo2:引入 SemiReusableActionListener,持有 UI 引用,回調 setMessage,稍解耦但仍綁定具體 UI 類。
UIDemo3:完全復用。利用反射獲取目標方法(Method method = clazz.getMethod("setMessage", paramTypes)),構造 ReusableActionListener(method, this, methodArgs)。監聽器無業務邏輯,純粹調用反射方法,實現通用事件分發。
ReusableWindowAdapter:通用窗口關閉處理,關閉並退出此設計提高代碼可復用性、健壯性與可維護性,展示 Command + 反射在 UI 事件處理中的實戰價值。