看板 java 關於我們 聯絡資訊
※ 引述《neigence ()》之銘言: 類似 visitor pattern 吧? : Object obj; : while((obj= ois.readObject())!=null){ : SomeOne.doSomething(obj); ^^^^^^^^^^^^^^^^^^^^^^^^^ 改成 obj.doSomething(); 決定呼叫哪個 doSomething 並加上以下: : } : //---------------------------------------------------------------- : class SomeOne{ : public void doSomething(B b){...} : public void doSomething(C c){...} : public void doSomething(D d){...}_ : } abstract class A{ public abstract void doSomething(); } class B extends A{ @Override public void doSomething(){ SomeOne.doSomething(this); } }; class C extends A{ @Override public void doSomething(){ SomeOne.doSomething(this); } }; 這邊會有重複的動作,應該逃不掉。 概念是把原本要由你來判斷的 type 資訊, 改由 dynamic binding, 也就是俗稱多型的方式處理。 透過這個方式,再把方向反轉一次的話, 連 multi-method 都能勉強模擬.. -- By Gamers, For Gamers - from the past Interplay -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.128.121.87