Tôi tổ chức các phương thức mở rộng bằng cách sử dụng kết hợp không gian tên và tên lớp và nó tương tự như cách bạn mô tả trong câu hỏi.
Nói chung tôi có một số loại "lắp ráp chính" trong giải pháp của tôi cung cấp phần lớn các chức năng được chia sẻ (như các phương pháp mở rộng). Chúng tôi sẽ gọi hội đồng này là "Khung" vì mục đích thảo luận.
Trong khuôn khổ khung, tôi cố gắng bắt chước không gian tên của những thứ mà tôi có phương pháp mở rộng. Ví dụ, nếu tôi đang mở rộng System.Web.HttpApplication, tôi sẽ có một không gian tên "Framework.Web". Các lớp như "String" và "Object" nằm trong không gian tên "Hệ thống", dịch sang không gian tên "Khung" gốc trong hội đồng đó.
Cuối cùng, đặt tên dọc theo các dòng bạn đã chỉ định trong câu hỏi - tên loại có "Tiện ích mở rộng" làm hậu tố. Điều này mang lại một hệ thống phân cấp lớp như thế này:
- Framework (namespace)
- Framework.ObjectExtensions (class)
- Framework.StringExtensions (class)
- Framework.Web (namespace)
- Framework.Web.HttpApplicationExtensions (class)
Lợi ích là, từ quan điểm bảo trì, thật dễ dàng để tìm phương pháp mở rộng cho một loại nhất định.
Nguồn
2008-09-18 20:48:31
Chà, điều tốt là tôi đã chạy vào câu trả lời này trước khi tạo lớp mở rộng đầu tiên của mình. – Sung