CÁC GIẢI PHÁP LẬP TRÌNH C - TS. NGUYỄN XUÂN THỦY - 9
Số trang: 66
Loại file: pdf
Dung lượng: 3.17 MB
Lượt xem: 18
Lượt tải: 0
Xem trước 7 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Chương 16: Các giao diện và mẫu thông dụngHiệ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. Hiện thực một phương thức khởi dựng public hỗ trợ cấu hình ban đầu...
Nội dung trích xuất từ tài liệu:
CÁC GIẢI PHÁP LẬP TRÌNH C - TS. NGUYỄN XUÂN THỦY - 9Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 641 Chương 16: Các giao diện và mẫu thông dụng • 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. • 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. • 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ớp MailReceivedEventArgs 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; } }Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 642 Chương 16: Các giao diện và mẫu thông dụng public string Subject { get { return subject; } } } Hiện thực mẫu Singleton 9. 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 của kiểu. • 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. • 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ện củ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ác chứ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 Singleton cho 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 {Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 643 Chương 16: Các giao diện và mẫu thông dụng get { return instance; } } // Các phương thức public cung cấp chức năng của singleton. public void SomeMethod1 () { /*..*/ } public void SomeMethod2 () { /*..*/ } } Để gọi các chức năng của lớp SingletonExample, bạn có thể lấy về một tham chiếu đến singleton bằng thuộc ...
Nội dung trích xuất từ tài liệu:
CÁC GIẢI PHÁP LẬP TRÌNH C - TS. NGUYỄN XUÂN THỦY - 9Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 641 Chương 16: Các giao diện và mẫu thông dụng • 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. • 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. • 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ớp MailReceivedEventArgs 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; } }Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 642 Chương 16: Các giao diện và mẫu thông dụng public string Subject { get { return subject; } } } Hiện thực mẫu Singleton 9. 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 của kiểu. • 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. • 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ện củ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ác chứ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 Singleton cho 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 {Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 643 Chương 16: Các giao diện và mẫu thông dụng get { return instance; } } // Các phương thức public cung cấp chức năng của singleton. public void SomeMethod1 () { /*..*/ } public void SomeMethod2 () { /*..*/ } } Để gọi các chức năng của lớp SingletonExample, bạn có thể lấy về một tham chiếu đến singleton bằng thuộc ...
Tìm kiếm theo từ khóa liên quan:
tài liệu học tập giáo trình công nghệ thông tin giáo trình đại học tài liệu ôn tập chính trị sách kinh tếGợi ý tài liệu liên quan:
-
Giáo trình phân tích một số loại nghiệp vụ mới trong kinh doanh ngân hàng quản lý ngân quỹ p5
7 trang 470 0 0 -
MARKETING VÀ QUÁ TRÌNH KIỂM TRA THỰC HIỆN MARKETING
6 trang 298 0 0 -
QUY CHẾ THU THẬP, CẬP NHẬT SỬ DỤNG CƠ SỞ DỮ LIỆU DANH MỤC HÀNG HÓA BIỂU THUẾ
15 trang 205 1 0 -
BÀI GIẢNG KINH TẾ CHÍNH TRỊ MÁC - LÊNIN - TS. NGUYỄN VĂN LỊCH - 5
23 trang 203 0 0 -
Giáo trình chứng khoán cổ phiếu và thị trường (Hà Hưng Quốc Ph. D.) - 4
41 trang 194 0 0 -
Giáo trình hướng dẫn phân tích các thao tác cơ bản trong computer management p6
5 trang 193 0 0 -
Tài liệu học tập hướng dẫn giải quyết tình huống học phần Tư pháp quốc tế
128 trang 187 0 0 -
BÀI GIẢNG LÝ THUYẾT MẠCH THS. NGUYỄN QUỐC DINH - 1
30 trang 172 0 0 -
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG - NGÂN HÀNG ĐỀ THI HẾT HỌC PHẦN HỌC PHẦN: TOÁN KINH TẾ
9 trang 169 0 0 -
Giáo trình phân tích giai đoạn tăng lãi suất và giá trị của tiền tệ theo thời gian tích lũy p10
5 trang 169 0 0