2009-06-30 27 views
13

Một cách để tăng hiểu biết của bạn về các mẫu thiết kế là khám phá cách các mẫu được sử dụng trong khuôn khổ .NET.Các mẫu thiết kế được sử dụng trong khuôn khổ .NET?

Bạn đã tìm thấy bất kỳ ví dụ nào về mẫu thiết kế trong khuôn khổ .NET chưa? Trong câu trả lời của bạn, vui lòng đưa ra một mô tả ngắn về mẫu và ví dụ về cách nó được sử dụng trong khung công tác.

Ví dụ câu trả lời:

Chiến lược Design Pattern tách riêng một thuật toán từ lớp có sử dụng nó bằng cách đóng gói các thuật toán vào một lớp riêng biệt. Điều này cho phép chuyển đổi các thuật toán.

Phương pháp sắp xếp của lớp Danh sách là ví dụ về mẫu Chiến lược.

public void Sort(IComparer<T> comparer) 

Bằng cách chấp nhận giao diện IComparer, người dùng của lớp có thể chuyển thuật toán sắp xếp khi chạy.

+9

cộng đồng wiki xin – JoshJordan

+0

Tôi thích đọc một cuốn sách hay về các mẫu thiết kế. Đây chỉ là niệm. – VVS

+4

@WS - bạn không thể tìm thấy mọi thứ trên SO trong một cuốn sách? Đó là một chút trên đầu trang. – womp

Trả lời

2

Events trong .Net Framework theo ADO.Net Observer Pattern

2
  • là tất cả về Abstract Factory cho việc loại bỏ các chi tiết của kết nối với các nguồn dữ liệu
  • Các sự kiện được một thực hiện các mô hình Observer
  • lặp Net là một thực hiện các mẫu Iterator
3

, trong đó rõ ràng là Iterator pattern. bằng cách sử dụng lớp IEnumerator trong khuôn khổ:

Vòng lặp trong .NET Framework là gọi là "điều tra" và đại diện bởi giao diện IEnumerator. IEnumerator cung cấp phương thức MoveNext() , tiến tới phần tử tiếp theo và cho biết liệu đã đạt đến kết thúc của bộ sưu tập chưa; a Thuộc tính hiện tại, để nhận giá trị của phần tử hiện đang được trỏ tại; và phương thức Reset() tùy chọn, để tua lại điều tra viên về vị trí ban đầu của nó. Điều tra viên ban đầu trỏ đến một giá trị đặc biệt trước phần tử đầu tiên, do đó, một cuộc gọi đến MoveNext() là bắt buộc để bắt đầu lặp lại.

6

Các Decorator Pattern được sử dụng trên các lớp suối:

  • System.IO.Stream
    • System.IO.BufferedStream
    • System.IO.FileStream
    • System.IO .MemoryStream
    • System.Net.Sockets.NetworkStream
    • System.Security.Cryptography.CryptoStream

Các lớp con trang trí Suối vì họ thừa hưởng từ nó, và họ cũng chứa một thể hiện của suối được thiết lập trong constructor.

Các vấn đề liên quan