Danh mục

Các giao diện và mẫu phần cuối

Số trang: 9      Loại file: pdf      Dung lượng: 184.39 KB      Lượt xem: 10      Lượt tải: 0    
Thư Viện Số

Hỗ trợ phí lưu trữ khi tải xuống: 4,000 VND Tải xuống file đầy đủ (9 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Hiện thực đối số sự kiện tùy biến Khi dựng lên một sự kiện, bạn cần truyền một trạng thái đặc-trưng-sự-kiện cho các phương thức thụ lý sự kiện. Tạo một lớp đối số sự kiện tùy biến dẫn xuất từ lớp System.EventArg.
Nội dung trích xuất từ tài liệu:
Các giao diện và mẫu phần cuối Hiện thực đối số sự kiện tùy biến Khi dựng lên một sự kiện, bạn cần truyền một trạng thái đặc-trưng-sự-kiện cho các phương thức thụ lý sự kiện.▪ Tạo một lớp đối số sự kiện tùy biến dẫn xuất từ lớp System.EventArg. Khi dựng lên sự kiện, hãy tạo một thể hiện của lớp đối số sự kiện và truyền nó cho các phương thức thụ lý sự kiện.Khi khai báo các kiểu sự kiện, thông thường bạn sẽ cần truyền trạng thái đặc-trưng-sự-kiện cho các phương thức thụ lý sự kiện. Để tạo một lớp đối số sự kiện tùy biến tuân theomẫu Event do .NET Framework định nghĩa, bạn cần: 1. Dẫn xuất lớp đối số sự kiện tùy biến từ lớp EventArgs. Lớp EventArgs không chứa dữ liệu và được sử dụng cùng với các sự kiện không cần truyền trạng thái. 2. Đặt một tên có ý nghĩa cho lớp đối số sự kiện tùy biến, kết thúc bằng từ EventArgs; chẳng hạn, DiskFullEventArgs hay MailReceivedEventArgs. 3. Đánh dấu lớp đối số sự kiện là sealed nếu bạn không muốn các lớp đối số sự kiện khác có thể thừa kế nó. 4. Hiện thực thêm các thuộc tính và các thành viên dữ liệu để hỗ trợ trạng thái sự kiện mà bạn cần truyền cho các phương thức thụ lý sự kiện. Tốt nhất là làm cho trạng thái sự kiện trở nên bất biến (immutable), như vậy bạn nên sử dụng các thành viên dữ liệu private readonly và sử dụng các thuộc tính public để cho phép truy xuất chỉ- đọc đến các thành viên dữ liệu này. 5. Hiện thực một phương thức khởi dựng public hỗ trợ cấu hình ban đầu của trạng thái sự kiện. 6. Làm cho lớp đối số sự kiện của bạn trở nên khả-tuần-tự-hóa (serializable) để bộ thực thi có thể marshal các thể hiện của nó qua các biên miền ứng dụng và biên máy. Áp dụng đặc tính System.SerializableAttribute thường là đã đủ cho các lớp đối số sự kiện. Tuy nhiên, nếu lớp đối số sự kiện có các yêu cầu tuần tự hóa đặc biệt, bạn phải hiện thực giao diện System.Runtime.Serialization.ISerializable (xem mục 16.1 để biết cách làm cho một lớp trở nên khả-tuần-tự-hóa).Đoạn mã dưới đây trình bày một lớp đối số sự kiện tùy biến có tên làMailReceivedEventArgs. Giả sử có một mail-server truyền các thể hiện của lớpMailReceivedEventArgs cho các phương thức thụ lý sự kiện nhận một thông điệp e-mail.Lớp này chứa các thông tin về người gửi và chủ đề của thông điệp e-mail.using System;[Serializable]public sealed class MailReceivedEventArgs : EventArgs { // Các thành viên private readonly giữ trạng thái sự kiện // (được phân bổ cho tất cả các phương thức thụ lý sự kiện). // Lớp MailReceivedEventArgs sẽ cho biết ai đã gửi mail // và chủ đề là gì. private readonly string from; private readonly string subject; // Phương thức khởi dựng (khởi tạo trạng thái sự kiện). public MailReceivedEventArgs(string from, string subject) { this.from = from; this.subject = subject; } // Các thuộc tính chỉ-đọc cho phép truy xuất // trạng thái sự kiện. public string From { get { return from; } } public string Subject { get { return subject; } }} Hiện thực mẫu Singleton Bạn cần bảo đảm chỉ có một thể hiện của một kiểu tồn tại ở một thời điểm cho trước và thể hiện đó là khả-truy-xuất đối với tất cả các phần tử của ứng dụng.▪ Hiện thực kiểu này theo mẫu Singleton như sau: Hiện thực một thành viên tĩnh private để giữ một tham chiếu đến thể hiện 7. của kiểu. 8. Hiện thực một thuộc tính tĩnh khả-truy-xuất-công-khai để cho phép truy xuất chỉ-đọc đến thể hiện. 9. Hiện thực một phương thức khởi dựng private để mã lệnh không thể tạo thêm các thể hiện của kiểu.Trong tất cả các mẫu được biết đến, có lẽ mẫu Singleton được biết đến nhiều nhất vàthường được sử dụng nhất. Mục đích của mẫu Singleton là bảo đảm chỉ có một thể hiệncủa một kiểu tồn tại ở một thời điểm cho trước và cho phép truy xuất toàn cục đến cácchức năng của thể hiện đó. Đoạn mã dưới đây trình bày một hiện thực của mẫu Singletoncho một lớp có tên là SingletonExample:public class SingletonExample { // Thành viên tĩnh dùng để giữ một tham chiếu đến thể hiện singleton. private static SingletonExample instance; // Phương thức khởi dựng tĩnh dùng để tạo thể hiện singleton. // Một cách khác là sử dụng Lazy Initialization trong // thuộc tính Instance. static SingletonExample () { instance = new SingletonExample(); } // Phương thức khởi dựng private dùng để ngăn mã lệnh tạo thêm // các thể hiện của kiểu singleton. private SingletonExample () {} // Thuộc tính public cho phép truy xuất đến thể hiện singleton. public static SingletonExample Instance { ...

Tài liệu được xem nhiều: