Re: [問題] 有關inner class的概念
※ 引述《LeoSW (易─雪)》之銘言:
: 嚴格來說我要做的功能應該比較像是Composite Pattern而不是Strategy Pattern
: 大概把我的架構做個說明:
: 有一個SuperClass(寫好的 不能改)
: 以及很多已經有的(寫好的可以改 但是希望不要改太多)
: SubClassA extends SuperClass
: SubClassB extends SuperClass
: SubClassC extends SuperClass
: 現在想要的是說
: 每一種SubClass各有一個Object
: 然後對每一個SubClass的Object依序做同一件事情
: 如果今天沒有 最後只能有一個Class的限制的話
: 那很直覺的作法就是:
: class NewSubClass extends SuperClass{
: void NewMethod(){
: SuperClass[] list = new SuperClass[number];
: /*for each list[i] = new SubClassX();*/
: for(int i=0;i<list.length;i++){
: list[i].method();
: }
: }
: }
: 可是這樣就會有很多個Class
: 而不是環境限制的只可以有一個Class
: 當然你的方法也是可以做到同樣的效果
: 只是當要對所有的class做同一件事情時
: 就得寫成一長串了
: 不曉得這樣子有沒有其他的辦法呢?
不以迴圈的方式來一一 invoke SubClassX 的特定 method,改成 hard code 對多個
object 的操作,這部分是可以使用程式來幫你產生程式碼。(許多韌體程式會把要
display 的點陣圖 pixel data 寫在程式碼裡,為什麼就不麻煩?)
如果考慮到把多個 SubClassX 合併成單一個 NewSubClass 之後,因為每個
SubClassX 的 field/method 被改名是有規則的,那麼上面使用迴圈的作法就可以
改成利用 reflection 機制來做,不需要一一 hard code 每一個 method
invocation statement。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.136.165
推
01/10 20:48, , 1F
01/10 20:48, 1F
→
01/10 20:49, , 2F
01/10 20:49, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):