intTypePromotion=1
ADSENSE

Bài giảng Lập trình ứng dụng mạng: Bài 1 - GV. Võ Tấn Dũng

Chia sẻ: Fczxxv Fczxxv | Ngày: | Loại File: PDF | Số trang:86

145
lượt xem
30
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Lập trình ứng dụng mạng: Bài 1 JAVA BEANS nhằm trình bày các khái niệm về Bean, thuộc tính của Bean,khám phá nội quan, khái niệm Introspection, Properties (các thuộc tính), Customization (sự tùy biến), Events (các sự kiện), Persistence (bảo tồn), Methods (các phương thức).

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình ứng dụng mạng: Bài 1 - GV. Võ Tấn Dũng

  1. TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN TP.HCM LẬP TRÌNH ỨNG DỤNG MẠNG BÀI 1 JAVA BEANS GV: Võ Tấn Dũng GIẢNG VIÊN: VÕ TẤN DŨNG 1
  2. PHẦN 1 JavaBean Overview GV: Võ Tấn Dũng 2
  3. COMPONENT MODEL • Component là các thành phần độc lập của phần mềm được lắp ráp với nhau để hình thành một ứng dụng. Các component trong Java được gọi là Bean hay Java-Bean. • Các component trong một ứng dụng có thể tương tác với nhau. Để tương tác được với nhau thì các component phải được đặt trong một container. Container được gọi là environment. Bản thân container cũng là một component. • Mỗi Bean đều có các thuộc tính (properties) và các hành vi (behaviors) cho phép Bean tương tác với environment và tương tác với các Bean khác. GV: Võ Tấn Dũng 3
  4. CÁC KHÁI NIỆM TRONG BEAN • Introspection (khám phá nội quan). • Properties (các thuộc tính). • Customization (sự tùy biến). • Events (các sự kiện). • Persistence (bảo tồn). • Methods (các phương thức). GV: Võ Tấn Dũng 4
  5. PHẦN 2 Bean’s properties GV: Võ Tấn Dũng 5
  6. THUỘC TÍNH CỦA BEAN (PROPERTIES) • Thuộc tính cho biết trạng thái (state) của một đối tượng. Các thuộc tính được truy cập bằng tên của thuộc tính. • Người dùng tương tác với bean thông qua các thuộc tính của nó. Bằng cách thay đổi thuộc tính, các nhà phát triển ứng dụng sẽ đem đến cho component một diện mạo và các hành vi khác. • Thuộc tính của bean có thể được thay đổi bằng các dòng lệnh trong code hoặc bằng các công cụ trực quan (visual tools). • Thuộc tính thật ra là nhưng biến nằm trong một lớp. GV: Võ Tấn Dũng 6
  7. CÁC GETTER VÀ SETTER • Thông thường biến được dùng vào hai mục đích đó là gán dữ liệu vào và lấy dữ liệu ra. • Giá trị của các thuộc tính không nên được truy cập trực tiếp mà cần phải thông qua các phương thức. • Các phương thức để đọc dữ liệu từ biến được gọi là các getter. Các phương thức để gán dữ liệu cho biến được gọi là các setter. • Các thuộc tính có các tính chất sau: read-and-write, read-only, write-only. • Kiểu dữ liệu của một thuộc tính có thể là kiểu sơ cấp (primitive) như int, long, boolean,…hoặc kiểu dữ liệu đối tượng của một lớp nào đó (kiểu wrapper class). GV: Võ Tấn Dũng 7
  8. CÁC GETTER VÀ SETTER • Các setter và getter nên theo các mẫu thiết kế (design pattern) sau đây: – public void set( value); – public get(); • Nếu có kiểu là boolean thì getter có thể theo mẫu sau: – public boolean is(); • Ví dụ: – Xem trang 51,52/”Developing Java Bean”-Robert Englander – Xem mục 3.2 chương 9/”Java-tập 1”-Phương Lan GV: Võ Tấn Dũng 8
  9. Indexed properties • Các phần tử của mảng được truy xuất nhờ vào chỉ số cho nên những thuộc tính kiểu mảng được gọi là thuộc tính chỉ số (indexed properties). • Các mẫu thiết kế (design pattern): – Setter: • public [] get(); • public void set([] value); – Getter: • public get(int index); • public void set(int index, value); • Ví dụ: – private Color[] standardColor={Color.white,Color.green,Color.red}; – public int getStandardColor(int idx); – public int setStandardColor(int idx, Color c); GV: Võ Tấn Dũng 9
  10. Bound properties • Khi thuộc tính của bean có thay đổi giá trị, nó có thể báo cho các bean khác biết sự thay đổi đó bằng cách thông báo. • Các thuộc tính có hỗ trợ các thông báo như vậy thì được gọi là các bound properties (thuộc tính thể hiện sự thay đổi). • Hoạt động này được thực hiện thông qua Event và các Listener. GV: Võ Tấn Dũng 10
  11. Bound properties • Một PropertyChangeEvent của một bounded property chỉ được thông báo ra bên ngoài khi nó có sự thay đổi. Tức là sự kiện (event) về sự thay đổi đó đã xảy ra. • Nếu một bean có bound property thì nó phải cung cấp một hàm đăng ký (register) và một hàm gỡ bỏ đăng ký (unregister) tương ứng với một bộ lắng nghe sự kiện thuộc tính (PropertyChangeListener). • Người lập trình có thể thiết kế và viết code cho các bộ lắng nghe sự kiện thuộc tính này. GV: Võ Tấn Dũng 11
  12. Bound properties • Design Pattern cho các register và unregister: – public void addPropertyChangeListener(PropertyChangeListener p); – public void removePropertyChangeListener(PropertyChangelistener p); • Trường hợp chỉ cần áp dụng cho một thuộc tính cụ thể thì ta cài đặt theo mẫu sau: – public void addListener(PropertyChangeListener p); – public void removeListener(PropertyChangelistener p); • Ví dụ: một bean có thuộc tính size kiểu int thì: – public void addSizeListener(PropertyChangeListener p); – public void removeSizeListener(PropertyChangelistener p); GV: Võ Tấn Dũng 12
  13. Bound properties • Các register và unregister chỉ dùng để đăng ký và gỡ bỏ đăng ký các Listener mà thôi. Để các đối tượng Listener nhận biết được sự thay của thuộc tính thì ta phải xây dựng hàm firePropertyChange trong bean. – public void firePropertyChange(String propertyName, Object oldValue, Object newValue); • Khi thiết kế bộ lắng nghe sự kiện thuộc tính (Property Change Listener) thì ta cần cài đặt phương thức: – public void propertyChange(PropertyChangeEvent evt) • Khi có sự kiện thay đổi thuộc tính xảy ra tại bean, hàm firePropertyChange của nó sẽ thông báo đến mọi đối tượng Listener đã đăng ký để Listener xử lý sự kiện bằng hàm propertyChange của Listener. GV: Võ Tấn Dũng 13
  14. VÍ DỤ: về Bound properties • Ví dụ 9-1 và 9-2 chương 9/”Java-tập 1”-Phương Lan GV: Võ Tấn Dũng 14
  15. Constrained properties • Hạn chế của các bound properties là các listener phải chấp nhận giá trị thuộc tính đã thay đổi mà không được quyền từ chối. • Trong một số thời điểm, listener có quyền từ chối không chấp nhận sự thay đổi của một thuộc tính nào đó từ một bean. Các thuộc tính như vậy gọi là các thuộc tính ràng buộc (constrained properties). GV: Võ Tấn Dũng 15
  16. Constrained properties • Để đăng ký đối tượng Listener cho một thuộc tính ràng buộc thì bean phải được cài đặt register và unregister theo các mẫu sau: – public void addListener(VetoableChangeListener p); – public void removeListener(VetoableChangeListener p); • Hoặc: – public void addVetoableChangeListener(VetoableChangeListener p); – public void removeVetoableChangeListener(VetoableChangeListener p); • Và hàm thông báo: – public void fireVetoableChange(String propertyName, Object oldvalue, Object newValue) GV: Võ Tấn Dũng 16
  17. Constrained properties • Để phản ứng lại với các thay đổi của constrained property thì ta phải xây dựng các bộ lắng nghe sự kiện từ giao diện VetoableChangeListener với phương thức cần cài đặt là: – public void vetoableChange(PropertyChangeEvent evt) • Nếu Listener không đồng ý cho thay đổi thuộc tính nó sẽ ném ra ngoại lệ PropertyVetoException. Thành phần bean có thuộc tính constraint sẽ bắt lấy và hủy bỏ quá trình thay đổi giá trị cho thuộc tính. • Đối tượng VetoableChangeSupport cũng tương tự như PropertyChangeSupport dùng để quản lý các đối tượng listener. PropertyChangeSupport được dùng cho bound property còn VetoableChangeSupport dùng GV: Võ Tấn Dũng cho constrained property. 17
  18. VÍ DỤ: về Constrained properties • Ví dụ 9-3 và 9-4 chương 9/”Java-tập 1”-Phương Lan GV: Võ Tấn Dũng 18
  19. PHẦN 3 Introspection (khám phá nội quan) GV: Võ Tấn Dũng 19
  20. KHÁI NIỆM INTROSPECTION • Introspection là tiến trình phơi bày các thuộc tính (properties), các phương thức (methods), các sự kiện (events) mà một Bean có thể hỗ trợ. • Tiến trình này được dùng vào lúc run-time của chương trình hoặc bởi các công cụ phát triển trực quan (visual development tool) vào lúc design-time. • Có hai cách để thực hiện tiến trình này: – Cơ chế phản ánh mức thấp (low-level reflection mechanism). Hay còn được gọi là Introspector ngầm định. – Xây dựng BeanInfo class bên cạnh một Bean. GV: Võ Tấn Dũng 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD


intNumView=145

 

Đồng bộ tài khoản
2=>2