2012-07-02 45 views
6

Trong C++, khi sử dụng mẫu Chuyển đổi tài nguyên là khởi tạo (RAII), có bất kỳ quy ước chung nào để đặt tên cho các lớp không?Quy ước đặt tên phổ biến cho các lớp RAII là gì?

Trong trường hợp của tôi, tôi có các lớp học mà làm các loại sau đây của sự vật và tôi muốn tên mà có nhiều khả năng để gọi một ý nghĩa hữu ích cho một người đọc lần đầu tiên khi nhìn thấy một trong những trên stack:

  • Một lớp để ngăn chặn việc ghi nhật ký (có thể lồng nhau).
  • Một lớp học để đưa ra một người quan sát.
  • Lớp học để ghi lại đối tượng hiện tại đang được xử lý cho chuỗi hiện tại.
  • Một lớp dẫn xuất để xử lý đối tượng ngoài hành vi lớp cơ sở (trong dòng trước).

Như một vết cắt đầu tiên, tôi đã sử dụng tên như thế này (theo thứ tự ở trên tương ứng), nhưng hy vọng sẽ cải thiện khi họ:

  • lớp SuppressLogger
  • lớp ScopedObserver
  • lớp WithCurrentObject
  • class WithObjectProcessed: public WithCurrentObject
+0

Tôi không thấy có vấn đề gì với những tên đó. Tôi có thể thêm 'Đăng nhập' vào hai ký tự cuối cùng (ví dụ: 'LogWithCurrentObject'), nhưng tùy thuộc vào mã, có thể không cần thiết. –

Trả lời

9

RAII nên được sử dụng trong toàn bộ ngôn ngữ. Vì nó phải là mặc định, không có quy ước đặt tên nào để làm theo.

+7

Đúng, nhưng có sự khác biệt giữa một lớp * xảy ra * để triển khai RAII và một lớp có * focus * là RAII (trong phạm vi không có bất kỳ phương thức nào khác ngoài hàm tạo và hàm hủy). Tôi cho rằng William hỏi về cái sau. – dan04

+0

@ dan04 Bạn chính xác. – WilliamKF

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