Câu hỏi này là về việc tạo một lớp lồng trong Java thành một lớp lồng tĩnh hay một lớp lồng bên trong. Tôi đã tìm kiếm xung quanh đây và trên Stack Overflow, nhưng thực sự không thể tìm thấy bất kỳ câu hỏi nào liên quan đến ý nghĩa thiết kế của quyết định này.
Các câu hỏi tôi tìm thấy đang hỏi về sự khác biệt giữa các lớp lồng nhau tĩnh và bên trong, rõ ràng đối với tôi. Tuy nhiên, tôi vẫn chưa tìm thấy một lý do thuyết phục để sử dụng một lớp lồng tĩnh trong Java - ngoại trừ các lớp ẩn danh, mà tôi không xem xét cho câu hỏi này.
Dưới đây là sự hiểu biết của tôi về tác dụng của việc sử dụng các lớp lồng nhau tĩnh:
- Ít khớp nối hơn: Chúng ta thường nhận được ít khớp nối hơn, vì lớp không thể truy cập trực tiếp vào các thuộc tính của lớp bên ngoài. Ít khớp nối thường có nghĩa là chất lượng mã tốt hơn, kiểm tra dễ dàng hơn, tái cấu trúc, v.v.
- Độc thân
Class
: Trình nạp lớp không cần phải chăm sóc một lớp mới mỗi lần, chúng ta tạo một đối tượng của lớp bên ngoài. Chúng tôi chỉ nhận được các đối tượng mới cho cùng một lớp hơn và hơn.
Đối với một lớp bên trong, tôi thường thấy rằng mọi người coi quyền truy cập vào các thuộc tính của lớp bên ngoài là chuyên nghiệp. Tôi xin khác về quan điểm này theo quan điểm thiết kế, vì truy cập trực tiếp này có nghĩa là chúng ta có một khớp nối cao và nếu chúng ta muốn trích xuất lớp lồng vào lớp cấp cao nhất của nó, chúng ta chỉ có thể làm như vậy sau khi chuyển cơ bản nó thành một lớp lồng tĩnh.
Vì vậy, câu hỏi của tôi đặt ra cho vấn đề này: Tôi có sai không khi cho rằng quyền truy cập thuộc tính có sẵn cho các lớp bên trong không tĩnh dẫn đến tính ghép cao, do đó làm giảm chất lượng mã và tôi suy ra rằng các lớp lồng nhau (không ẩn danh) nên Nói chung là tĩnh?
Hay nói cách khác: Có một lý do thuyết phục tại sao người ta thích một lớp bên trong lồng nhau?