CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 607

607

Chương 16: Các giao diện và mẫu thông dụng

hương này trình bày cách hiện thực các mẫu (pattern) sẽ được sử dụng thường xuyên
trong quá trình phát triển các ứng dụng Microsoft .NET Framework. Một số mẫu
được chuẩn hóa bằng các giao diện được định nghĩa trong thư viện lớp .NET

Framework. Một số khác thì ít cứng nhắc hơn, nhưng vẫn yêu cầu bạn thực hiện các cách tiếp
cận cụ thể để thiết kế và hiện thực các kiểu của bạn. Các mục trong chương này mô tả cách:

C

Tạo các kiểu khả-tuần-tự-hóa để bạn có thể dễ dàng lưu trữ vào đĩa, gửi qua mạng, hoặc
truyển bằng trị qua các biên miền ứng dụng (mục 16.1).

Cung cấp một cơ chế dùng để tạo bản sao đầy đủ và chính xác của đối tượng (mục
16.2).

Hiện thực các kiểu sao cho dễ dàng so sánh và sắp xếp (mục 16.3).

Hỗ trợ việc liệt kê các phần tử trong các tập hợp tùy biến (mục 16.4).

Bảo đảm rằng một kiểu có sử dụng các tài nguyên không-được-quản-lý sẽ giải phóng
các tài nguyên đó khi không còn cần đến chúng nữa (mục 16.5).

Hiển thị dạng chuỗi của các đối tượng biến đổi dựa trên format specifier (mục 16.6).

Hiện thực các kiểu đối số sự kiện và ngoại lệ tùy biến (bạn sẽ thường xuyên sử dụng
chúng trong quá trình phát triển ứng dụng) (mục 16.7 và 16.8).

Hiện thực các mẫu thiết kế thông dụng SingletonObserver bằng các tính năng có sẵn
của C# và thư viện lớp .NET Framework (mục 16.9 và 16.10).

1.

1.

Hi n th c ki u kh -tu n-t -hóa (serializable type)

ự ể

ả ầ ự

Hi n th c ki u kh -tu n-t -hóa (serializable type)

ự ể

ả ầ ự

Bạn cần hiện thực một kiểu tùy biến khả-tuần-tự-hóa, cho phép bạn:

Lưu trữ các thể hiện của kiểu vào kho lưu trữ (file hay cơ sở dữ liệu).

Chuyển các thể hiện của kiểu qua mạng.

Truyền các thể hiện của kiểu “bằng trị” qua các biên miền ứng dụng.

Đối với việc tuần tự hóa các kiểu đơn giản, hãy áp dụng đặc tính

System.SerializableAttribute

vào khai báo kiểu. Đối với các kiểu phức tạp hơn,

hoặc để kiểm soát nội dung và cấu trúc của dữ liệu được-tuần-tự-hóa, hãy hiện
thực giao diện

System.Runtime.Serialization.ISerializable

.

Mục 2.12 đã trình bày cách tuần tự hóa và giải tuần tự hóa một đối tượng bằng các lớp
formatter (được cấp cùng với thư viện lớp .NET Framework). Tuy nhiên, theo mặc định thì
các kiểu không là khả-tuần-tự-hóa. Để hiện thực một kiểu tùy biến là khả-tuần-tự-hóa, bạn
phải áp dụng đặc tính

SerializableAttribute

vào khai báo kiểu. Khi tất cả các trường dữ liệu

trong kiểu đều là khả-tuần-tự-hóa, việc áp dụng

SerializableAttribute

là tất cả những gì cần

làm để khiến cho kiểu tùy biến của bạn là khả-tuần-tự-hóa. Nếu bạn hiện thực một lớp tùy
biến dẫn xuất từ một lớp cơ sở, lớp cơ sở cũng phải là khả-tuần-tự-hóa.
Mỗi lớp formatter chứa logic cần thiết để tuần tự hóa các kiểu được gắn với đặc tính

SerializableAttribute

và sẽ tuần tự hóa tất cả các trường

public

,

protected

, và

private

.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.