Cây phân cấp Connection

Một phần của tài liệu Luận văn:" Lập trình thiết bị do động trên J2ME" docx (Trang 94 - 96)

Khi đưa ra khái niệm cây phân cấp, người ta chủ ý tạo ra một lớp có khả năng mở mọi loại kết nối bao gồm: file, http, datagram, … Tên của lớp này là

Connector. Như vậy nếu sử dụng Connector để mở kết nối, chúng ta chỉ cần gọi một phương thức open có định dạng như sau:

Connector.Open(“protocol:address; parameter”)

Cơ chế mà GCF dùng để mở nhiều loại giao tiếp chỉ bằng một phương thức chung duy nhất này đã chứng minh tính uyển chuyển của GCF. Cơ chế này hoạt động như

sau:

Trong thời gian thực thi, mỗi khi có yêu cầu mở một giao thức, Connector sẽ

tìm đến lớp tương ứng cài đặt giao thức ấy. Quá trình tìm kiếm này được thực hiện thông qua phương thức Class.forName(). Ví dụ như để yêu cầu mở kết nối HTTP trong J2ME, yêu cầu đó sẽđược viết như sau:

Class.forName(“com.sun.midp.io.j2me.http.Protocol”);

Khi tìm thấy lớp tương ứng, Class.forName() sẽ trả về một đối tượng có cài đặt giao diện Connection (trong đó lớp Connector và giao diện Connection đã được

định nghĩa sẵn trong CLDC)

Sau đây là cây phân cấp Connection, nó bao gồm các lớp mà mỗi lớp được định nghĩa như là một giao diện

Trong kiến trúc của cây phân cấp, cài đặt thật sự của ác giao thức đều nằm ở mức hiện trạng. Trong MIDP 1.0, HttpConnection hỗ trựo một tâpj con HTTP phiên bản 1.0. Do đó khi lớp này mở rộng ContentConnection, nó đã được cung cấp sẵn hơn 20 phương thức chuyên biệt để giao tiếp thông qua giao thức HTTP.

Mặc dù DatagramConnection cũng xuất hiện trong cây phân cấp nhưng người ta không bắt buộc cài đặt MIDP để hỗ trợ giao thức này.

Một phần của tài liệu Luận văn:" Lập trình thiết bị do động trên J2ME" docx (Trang 94 - 96)