Có hai khái niệm chính trong sự nhầm lẫn: ràng buộc và tải. Nó bị giới hạn bởi khái niệm DataBinding, một nơi nào đó ở giữa thường làm cả hai. Sau khi xem xét nó, tôi sẽ thêm một khái niệm nữa, để hoàn thành trifecta, công văn.
Các loại
Binding muộn : loại không xác định cho đến khi biến được thực hiện trong thời gian chạy; thường thông qua chuyển nhượng nhưng có những cách khác để ép buộc một loại; các ngôn ngữ được gõ động gọi đây là một tính năng cơ bản, nhưng nhiều ngôn ngữ được nhập tĩnh có một số phương pháp để đạt được ràng buộc muộn
Được triển khai thường sử dụng các loại động [đặc biệt], hướng nội / phản chiếu, cờ và tùy chọn trình biên dịch hoặc thông qua các phương thức ảo bằng cách mượn và mở rộng công văn động
Binding sớm : loại được biết trước khi biến được thực hiện trong thời gian chạy, thường thông qua một phương tiện khai báo tĩnh
Được thực hiện thường xuyên bằng cách sử dụng các loại nguyên thủy tiêu chuẩn
Chức năng
Công văn tĩnh : đã biết, hàm cụ thể hoặc chương trình con tại thời điểm biên dịch; nó không rõ ràng và khớp với chữ ký
Thực hiện như các hàm tĩnh; không có phương pháp nào có thể có cùng chữ ký
Công văn động : không phải là một hàm cụ thể hoặc chương trình con tại thời điểm biên dịch; được xác định bởi bối cảnh trong quá trình thực hiện. Có hai cách tiếp cận khác nhau đối với "công văn động", được phân biệt bởi thông tin theo ngữ cảnh nào được sử dụng để chọn triển khai chức năng phù hợp.
Trong đơn [ động ] công văn , chỉ có các loại trường hợp được sử dụng để xác định việc thực hiện chức năng thích hợp. Trong các ngôn ngữ gõ tĩnh, điều này có nghĩa là gì trong thực tế là kiểu thể hiện quyết định việc thực hiện phương thức nào được sử dụng bất kể kiểu tham chiếu được chỉ định khi biến được khai báo / gán. Vì chỉ có một loại duy nhất - loại của thể hiện đối tượng - được sử dụng để suy ra cách thực hiện phù hợp, nên cách tiếp cận này được gọi là "công văn đơn".
Ngoài ra còn có nhiều [ động ] văn , nơi các loại tham số đầu vào cũng giúp xác định chức năng thực hiện để gọi. Bởi vì nhiều loại - cả loại thể hiện và loại (các) tham số - ảnh hưởng đến việc thực hiện phương thức nào được chọn, phương pháp này được gọi là "nhiều công văn".
Được thực hiện như các chức năng ảo hoặc trừu tượng; các manh mối khác bao gồm các phương thức bị ghi đè, ẩn hoặc bị che khuất.
Lưu ý: Việc quá tải phương thức có liên quan đến công văn động hay không là ngôn ngữ cụ thể. Ví dụ, trong Java, các phương thức quá tải được gửi tĩnh.
Giá trị
Lazy Loading : chiến lược khởi tạo đối tượng trì hoãn việc gán giá trị cho đến khi cần ; cho phép một đối tượng ở trạng thái cơ bản hợp lệ nhưng không đầy đủ và chờ đợi cho đến khi dữ liệu cần thiết trước khi tải nó; thường được tìm thấy đặc biệt hữu ích để tải các bộ dữ liệu lớn hoặc chờ đợi trên các tài nguyên bên ngoài
Được triển khai thường xuyên bằng cách cố tình không tải một bộ sưu tập hoặc danh sách vào một đối tượng tổng hợp trong khi gọi hàm tạo hoặc khởi tạo cho đến khi một số người gọi xuôi dòng yêu cầu xem nội dung của bộ sưu tập đó (ví dụ: get_value_at, get_all_as, v.v.). Biến thể bao gồm tải thông tin meta về bộ sưu tập (như kích thước hoặc khóa), nhưng bỏ qua dữ liệu thực tế; cũng cung cấp một cơ chế cho một số thời gian chạy để cung cấp cho các nhà phát triển một kế hoạch triển khai đơn lẻ khá an toàn và hiệu quả
Tải háo hức : chiến lược khởi tạo đối tượng thực hiện ngay lập tức tất cả các phép gán giá trị để có tất cả dữ liệu cần thiết để hoàn thành trước khi xem xét bản thân ở trạng thái hợp lệ.
Được triển khai thường xuyên bằng cách cung cấp một đối tượng tổng hợp với tất cả dữ liệu đã biết càng sớm càng tốt, như trong khi gọi hàm khởi tạo hoặc khởi tạo
Liên kết dữ liệu : thường liên quan đến việc tạo một liên kết hoạt động hoặc ánh xạ giữa hai luồng thông tin tương thích để các thay đổi thành một được phản ánh trở lại vào luồng kia và ngược lại; để tương thích, họ thường phải có một loại cơ sở hoặc giao diện chung
Được triển khai thường xuyên như một nỗ lực để cung cấp đồng bộ hóa sạch hơn, nhất quán hơn giữa các khía cạnh ứng dụng khác nhau (ví dụ: mô hình xem để xem, mô hình cho bộ điều khiển, v.v.) và nói về các khái niệm như nguồn và đích, điểm cuối, liên kết / hủy liên kết, cập nhật và sự kiện như on_bind, on_property_change, on_explicit, onDef_of_scope
EDIT LƯU Ý: Chỉnh sửa lớn cuối cùng để cung cấp mô tả về các ví dụ về cách những điều này thường xảy ra. Các ví dụ mã cụ thể phụ thuộc hoàn toàn vào việc triển khai / thời gian chạy / nền tảng