前方案令人滿意:新類型加入涉及添加/修改不同類別,無需大範圍代碼變動,RTTI 未濫用。但仍可更深入,以最「純」角度看待 RTTI,考慮如何在垃圾分類系統完全消除它。
所有與不同類型有特殊關聯活動(如偵測垃圾具體類型放入適當垃圾筒)應透過多型與動態綁定控制。舊範例先按類型排序再操作特定類型元素。需操作特定類型時請先思考:多型(動態綁定方法調用)整個宗旨就是幫管理與不同類型有特殊關聯的資訊。為何還要自己檢查類型?
答案在於 Java 只執行「單一分派」。對多個類型未知物件執行操作,Java 只為其中一種類型調用動態綁定機制。無法解決問題,最後不得不人工判斷某些類型產生有效動態綁定行為。解決缺陷需「多重分派」機制:建立配置使單一方法調用產生多個動態方法調用,一次處理正確判斷多種類型。需操作多個類型結構:每次分派一個類型結構。下例操作兩結構:現有 Trash 體系、垃圾筒類型體系(人為創建執行多重分派,因僅涉及兩次分派稱「雙重分派」)。