Re: [問題] 請問設計模式裏的物件回傳
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
05/02 19:13, 1F
→
05/02 19:15, , 2F
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
05/03 18:40, 3F
那就制定format吧... 第A碼-第B碼為第一欄,B-C為第二欄...
或是透過 JSON 或 XML 等資料格式傳遞後再解析。
※ 編輯: GERRYccc 來自: 1.162.72.244 (05/04 00:51)
討論串 (同標題文章)