III SO SÁNH JAVABEANS VÀ ACTIVE
2.3.2 Truyền thông của cấu phần với Event( sự kiện) và Delegate(đại diện).
Delegate(đại diện).
.Net Delegate một phương thức mà là chức năng của nó tương tự như con trỏ trong C + +, nhưng nó an toàn và đảm bảo. Delegate sẽ đại diện một dòng điều khiển để xử lý đăng ký sự kiện khi các sự kiện được diễn ra. Nó hoạt động
Bài giảng COP – Chuyên ngành: CNPM - Version 1
Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 135
như mô hình quan sát, giống như chức năng bắt sự kiện trong Java. Một Delegate có thể lưu giữ phương thức tĩnh của một lớp, hay một thành phần, hoặc một phương pháp của đối tượng chính nó. Có hai loại delegate : SingleCast và multicast.
Một delegate SingleCast chỉ có thể thực hiện một phương thức trong một thời điểm. Ví dụ:
Delegate int Mydelegate(); public class MyClass
{ public int ObjMethod() {- - - }
static public int StaticMethod () {- - - }
public class Drive { Static public void Main() { Myclass c = new MyClass();
MyDelegate dlg = new MyDelegate(c.objMethod()); dlg();
dlg = new MyDelegate (MyClass.StaticMethod()); dlg();
} }
Như đã thấy trong ví dụ này, Mydelegate là một phương thức đại diện với kiểu trả về int và không có bất kỳ tham số nào. objMethod và StaticMethod phù hợp với MyDelegateu. Dlg() đầu tiên sẽ chạy tại objMethod và dlg() thứ hai sẽ chạy tại StaticMethod. Một Delegate multicast có kiểu trả về là void, phương thức ràng buộc có thể nhiều. Ví dụ:
Delegate void MultiDelegate(); MultiDelegate mdlg = null;
mdlg += new MultiDelegate (Method1); mdlg += new MultiDelegate (Method2);
Việc đăng ký được thực hiện bởi toán tử += , hủy đăng ký được thực hiện bởi -=.
Một sự kiện là một thông điệp được gửi bởi một đối tượng để gọi ra một hành động. Các đối tượng làm tăng sự kiện gọi là nguồn sự kiện và đối tượng chặn và xử lý các sự kiện là mục tiêu của sự kiện. Đây là một mô hình truyền thông hướng sự kiện giữa các thành phần hoặc trong cùng một thành phần. Lớp
Bài giảng COP – Chuyên ngành: CNPM - Version 1
Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 136
Delegate là các kênh truyền thông đẳng cấp giữa nguồn sự kiện và mục tiêu của sự kiện. Sự kiện có thể là một sự kiện được xác định trước như một sự kiện kích hoạt bởi một thành phần Form Windows. Người phát triển cũng có thể định nghĩa một sự kiện tùy chỉnh. Thủ tục để tạo ra và sử dụng một sự kiện đại biểu được liệt kê ở đây