Tôi đã trải qua rất nhiều lý thuyết về đóng gói và ba kỹ thuật thực hiện nó, đó là Hiệp hội, Tập hợp và Thành phần.
Đóng gói
Đóng gói là kỹ thuật làm cho các trường trong một lớp riêng tư và cung cấp quyền truy cập vào các trường thông qua các phương thức công khai. Nếu một trường được khai báo là riêng tư, nó không thể được truy cập bởi bất kỳ ai bên ngoài lớp, do đó ẩn các trường trong lớp. Vì lý do này, đóng gói cũng được gọi là ẩn dữ liệu.
Đóng gói có thể được mô tả như một hàng rào bảo vệ ngăn chặn mã và dữ liệu được truy cập ngẫu nhiên bởi mã khác được xác định bên ngoài lớp. Truy cập vào dữ liệu và mã được kiểm soát chặt chẽ bởi một giao diện.
Lợi ích chính của việc đóng gói là khả năng sửa đổi mã được triển khai của chúng tôi mà không vi phạm mã của những người khác sử dụng mã của chúng tôi. Với tính năng này, Encapsulation mang lại khả năng bảo trì, tính linh hoạt và khả năng mở rộng cho mã của chúng tôi.
Hội
Hiệp hội là một mối quan hệ trong đó tất cả các đối tượng có vòng đời riêng và không có chủ sở hữu. Hãy lấy một ví dụ về Giáo viên và Học sinh. Nhiều học sinh có thể liên kết với một giáo viên và một học sinh có thể liên kết với nhiều giáo viên, nhưng không có quyền sở hữu giữa các đối tượng và cả hai đều có vòng đời riêng. Cả hai có thể tạo và xóa độc lập.
Tập hợp
Tập hợp là một hình thức chuyên môn của Hiệp hội nơi tất cả các đối tượng có vòng đời riêng, nhưng có quyền sở hữu và một đối tượng con không thể thuộc về đối tượng cha mẹ khác. Hãy lấy một ví dụ về Bộ và giáo viên. Một giáo viên không thể thuộc nhiều bộ phận, nhưng nếu chúng tôi xóa bộ phận đó, đối tượng giáo viên sẽ không bị phá hủy. Chúng ta có thể nghĩ về nó như là một mối quan hệ của người Viking.
Thành phần
Thành phần lại là một hình thức tổng hợp chuyên biệt và chúng ta có thể gọi đây là một mối quan hệ chết chóc. Nó là một loại tập hợp mạnh mẽ. Đối tượng con không có vòng đời của chúng và nếu đối tượng cha mẹ xóa tất cả đối tượng con cũng sẽ bị xóa. Hãy lấy lại một ví dụ về mối quan hệ giữa Nhà và phòng. Nhà có thể chứa nhiều phòng nhưng không có cuộc sống độc lập của một phòng và bất kỳ phòng nào cũng không thể thuộc về hai ngôi nhà khác nhau. Nếu chúng tôi xóa nhà, căn phòng sẽ tự động bị xóa.
Câu hỏi là:
Bây giờ tất cả là những ví dụ thực tế. Tôi đang tìm kiếm một số mô tả về cách sử dụng các kỹ thuật này trong mã lớp thực tế. Ý tôi là điểm nào để sử dụng ba kỹ thuật khác nhau để đóng gói , Làm thế nào những kỹ thuật này có thể được thực hiện và Cách chọn kỹ thuật nào được áp dụng tại thời điểm đó.