Thứ nhất
Hãy tự hỏi mình câu hỏi "mục đích duy nhất của lớp này là gì?". Không tuân thủ Nguyên tắc Trách nhiệm Đơn lẻ, việc đặt tên các lớp và phương thức trở nên rất khó khăn. Nếu bạn không thể trả lời câu hỏi đó, bạn có thể cần suy nghĩ lại những gì bạn muốn lớp học làm và xem xét tách các mối quan tâm. Điều này sẽ làm cho nó dễ dàng hơn để đặt tên
Thứ hai
Bạn có một mẫu cho cách bạn đặt tên cho các lớp học của bạn? Có lẽ hãy thử nhìn vào một số mẫu đặt tên phổ biến, ví dụ như mẫu, sẽ trở nên dễ theo dõi hơn nhiều khi bạn đã giải quyết SRP ở trên. Lớp của bạn có phân tích cú pháp XML không? Hãy thử XMLParser. Liệu nó phân tích cú pháp XML, tạo các mô hình miền để thể hiện đầu vào, duy trì chúng cho DB và sau đó đăng một thông báo thành công lên Twitter? Hãy thử tái cấu trúc.
Thứ ba
Tôi hiểu bạn đến từ đâu và đã từng ở trong tình huống tương tự trước đây. Có lẽ hãy thử mở lớp của bạn với một số chức năng, với một tên tạm thời để bắt đầu. Với bất kỳ IDE tốt hoặc tái cấu trúc assitant, đổi tên lớp phải là một hành động chỉ bằng một cú nhấp chuột, vì vậy những gì bạn đặt tên cho lớp của bạn ban đầu không cần phải là vĩnh viễn! Điều này sẽ giúp bạn vượt qua khối OCD của bạn và cho thời gian tiềm thức của bạn để xử lý nó thêm một chút.
Cuối cùng và hơi lạc đề
Tôi đã có một khoảnh khắc bóng đèn trong một số công việc tôi đang làm vào một ngày khác, thực hiện một hệ thống không quan trọng và tôi đã dành thời gian chơi đùa với các cách đặt tên khác nhau của các lớp, v.v ... Đặt tên cho giao diện của bạn theo chức năng, đặt tên cho các lớp theo hàm ý cụ thể của chúng ... Ví dụ: bạn có thể muốn có IXMLParser và XMLParser, nhưng điều gì xảy ra khi đầu vào của bạn thay đổi thành JSON? Thay vào đó, hãy thử IInputParser, theo cách đó bạn có thể tạo các lớp cụ thể XMLParser và JSONParser, cả hai đều triển khai IInputParser theo các cách khác nhau.