筆記

          way

          Beginning JO(2 Collection)

              數組可以裝基本類型或者引用,collections只能裝引用。
              通常有兩種方法可以擴展collection 來滿足一些需要:繼承某種集合類型和封裝某種集合類型。第一種的優點是初始化的時候在內存中只產生一個對象,這是繼承特性決定的。后者的優點是我們可以方便控制被封裝集合的各種屬性。
          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; //成績報告單
              public void addTranscriptEntry(TranscriptEntry te) {   // 操作transcript達到記錄成績
                  // Store the TranscriptEntry in our ArrayList.
                  transcript.add(te);
              }
          }
          客戶端調用代碼:
          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處理更少的細節,不用管transcripts怎么表達,看不到TranscriptEntry的存在。客戶端代碼更簡單。

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

          導航

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

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          收藏夾

          博客

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 柘荣县| 新宾| 江陵县| 天水市| 易门县| 永城市| 叶城县| 姜堰市| 奉节县| 万荣县| 襄城县| 武穴市| 石渠县| 改则县| 蓝田县| 前郭尔| 日喀则市| 阿拉尔市| 根河市| 锡林浩特市| 运城市| 深州市| 托克托县| 英超| 洪雅县| 珲春市| 鄂托克前旗| 阳高县| 临泽县| 闽清县| 富宁县| 福清市| 眉山市| 西乌珠穆沁旗| 类乌齐县| 宁阳县| 沂南县| 云安县| 安宁市| 两当县| 高台县|