筆記

          way

          Beginning JO(2 Collection)

              數(shù)組可以裝基本類型或者引用,collections只能裝引用。
              通常有兩種方法可以擴(kuò)展collection 來滿足一些需要:繼承某種集合類型和封裝某種集合類型。第一種的優(yōu)點(diǎn)是初始化的時候在內(nèi)存中只產(chǎn)生一個對象,這是繼承特性決定的。后者的優(yōu)點(diǎn)是我們可以方便控制被封裝集合的各種屬性。
          Whenever possible, it’s desirable to bury implementation details inside of a class rather than exposing client code to such details。例:
          法1:
          public class Student {
              private String name;
              private String studentId;  
              private ArrayList<TranscriptEntry> transcript; //成績報(bào)告單
              public void addTranscriptEntry(TranscriptEntry te) {   // 操作transcript達(dá)到記錄成績
                  // Store the TranscriptEntry in our ArrayList.
                  transcript.add(te);
              }
          }
          客戶端調(diào)用代碼:
          Student s = new Student("1234567", "James Huddleston");
          Course c = new Course("LANG 800", "Advanced Language Studies");
          TranscriptEntry te = new TranscriptEntry(c, "Fall 2006", "B+");
          s.addTranscriptEntry(te);
          法2:
          建立新對象,封裝一個ArrayList:
          public class Transcript {
              private ArrayList<TranscriptEntry> transcriptEntries;
              public void courseCompleted(Course c, String semester, String grade) {
                  // Instantiate and insert a brand-new TranscriptEntry object into the
                  // ArrayList - details hidden away!
                  transcriptEntries.add(new TranscriptEntry(c, semester, grade);
              }
          }
          public class Student {
              private String name;
              private String studentId;
              // This used to be declared as an ArrayList.
              private Transcript transcript;
              // etc.
          }
          客戶端代碼:
          s.courseCompleted(c, "Spring 2006", "A+");
          第二種方法使Student處理更少的細(xì)節(jié),不用管transcripts怎么表達(dá),看不到TranscriptEntry的存在。客戶端代碼更簡單。

          posted on 2009-12-10 11:38 yuxh 閱讀(175) 評論(0)  編輯  收藏 所屬分類: jdkOO設(shè)計(jì)

          導(dǎo)航

          <2009年12月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          統(tǒng)計(jì)

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          收藏夾

          博客

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 德钦县| 威宁| 抚宁县| 永寿县| 中卫市| 徐州市| 日喀则市| 海安县| 桂东县| 桃园市| 乡宁县| 夏邑县| 田东县| 大新县| 雷波县| 富民县| 张家界市| 河北区| 宝兴县| 怀集县| 娄烦县| 西乡县| 云梦县| 宁河县| 清远市| 海兴县| 米易县| 固阳县| 茶陵县| 长宁区| 云龙县| 吉林省| 平顶山市| 福海县| 无为县| 蒙城县| 莒南县| 安化县| 九龙县| 新兴县| 丰顺县|