Re: [問題] 請問設計模式裏的物件回傳

看板java作者 (月狼)時間12年前 (2012/05/01 20:12), 編輯推噓2(201)
留言3則, 1人參與, 最新討論串2/3 (看更多)
public class A { public void someMethod(SomeBean sb){ // 透過SomeBean將物件塞滿資料丟進來... Binner b = new A.Binner(sb.getArg1, sb.getArg2, sb.getArg3, sb.getArg4); // 也可以把整個SomeBean往內部類別丟... // 這裡有點忘了怎麼實體化內部類別= =|| // 有誤請指正 b.doSomethingMethod(); } class Binner { private int param1; private String param2; private long param3; private boolean isLimit; // Binner 的建構子 Binner(int arg1, String arg2, long arg3, boolean arg4){ this.param1 = arg1; // ... 依此類推 } // 做某事會被呼叫的method public String doSomethingMethod(){ // todo...... return "str"; } } } // 存載資料用的Bean 物件 public class SomeBean(){ private int arg1; private String arg2; private long arg3; private boolean arg4; // 底下當然有些 getter & setter } 這樣做完之後當外人呼叫你的class A.someMethod 的時候 就會看到需要帶入一個 SomeBean 請在註解處&SPEC上寫明哪些case各需要SomeBean內的哪些資料... 那外人應該就知道該怎麼用了! 作法百百種,亂亂寫一種給你參考... 沒用IDE寫這段,若遇到繆誤請見諒! ps. 我不懂 design pattern 若你能為我補充說明一下,那就太好了! :) ※ 引述《rokaku (暱稱能用來幹嘛?)》之銘言: : 最近在寫一個java class供別人呼叫, : 所以外人可寫一class來操作我的內部class : 其中有一個method是需要指定某內部類別的資料 : 問題就卡在既然是內部類別資料, 我就不應該將內部資料export出來 : 想到一種做法是"將要指定的資料"做成一個類別放在內部類別裏供呼叫 : 可是如果外部class完全不知內部有何資料, 那這個方法就行不通 : 查了一下design pattern, 好像沒有講如何回傳內部類別 : 或者說有更好的處理方法, 希望有高人可以指點一下 : 先謝謝了 --

05/02 19:13, , 1F
那如果SomeBean的資料是runtime才能決定,那該怎麼辦才好呢?
05/02 19:13, 1F

05/02 19:15, , 2F
其實我也是卡住了才去查design pattern,也算是初學者啦~~
05/02 19:15, 2F
內部class需要的資料可能隨時不同?? 而且沒有定律?? 如果真的有這麼隨機的資料,在JDK5以後有支援 int... 不指定個傳入參數同型別的可以用,或是陣列?? 但內部class需要什麼資料應該是由製作API的你決定的, 若是有不同的case會有需要不同的資料, 那可以拆開成不同的method做資料處理,執行業務流程時再呼叫共用的Method, 或是下一位版友回應說的封裝 interface 當作傳入參數, 再用不同的SomeBeanCaseA SomeBeanCaseB去實作上面的interface。 (當然SPEC也要說明什麼Case時用哪一個SomeBean傳哪些資料)

05/03 18:40, , 3F
傳入資料是從socket過來的,所以僅知是ByteArray,但還是說謝
05/03 18:40, 3F
那就制定format吧... 第A碼-第B碼為第一欄,B-C為第二欄... 或是透過 JSON 或 XML 等資料格式傳遞後再解析。 ※ 編輯: GERRYccc 來自: 1.162.72.244 (05/04 00:51)
文章代碼(AID): #1FdzCTcW (java)
文章代碼(AID): #1FdzCTcW (java)