Sự khác biệt giữa ràng buộc sớm và muộn

Sự khác biệt chính - Sớm vs Binding muộn
 

Binding sớm và Binding muộn là hai khái niệm liên quan đến đa hình. Binding sớm xảy ra tại thời gian biên dịch trong khi Binding muộn xảy ra trong thời gian chạy. Các sự khác biệt chính giữa ràng buộc sớm và muộn là Binding sớm sử dụng thông tin lớp để giải quyết việc gọi phương thức trong khi Binding muộn sử dụng đối tượng để giải quyết việc gọi phương thức.

Các ngôn ngữ lập trình như Java hỗ trợ Lập trình hướng đối tượng (OOP). Đó là một mô hình cho phép xây dựng chương trình hoặc phần mềm bằng cách sử dụng các đối tượng. Có nhiều đối tượng trong phần mềm. Các đối tượng này được kết nối với nhau và truyền thông điệp bằng các phương thức. Mọi đối tượng đều có đặc điểm và hành vi. Các đặc điểm được mô tả bởi các thuộc tính hoặc thuộc tính. Các hành vi được mô tả bằng các phương pháp. Đối tượng Học sinh có thể có các đặc điểm như tên, tuổi và chúng được thể hiện bằng các thuộc tính. Đối tượng Học sinh có thể có các hành vi như học và đọc, và chúng được thể hiện bằng các phương pháp. Một trụ cột chính của OOP là Đa hình. Nó cho phép một đối tượng hành xử theo nhiều cách. Binding sớm và Binding muộn là hai khái niệm trong đa hình. Phương pháp quá tải được liên kết bằng cách sử dụng ràng buộc sớm. Các phương thức ghi đè được liên kết bằng liên kết muộn.

NỘI DUNG

1. Tổng quan và sự khác biệt chính
2. Liên kết sớm là gì
3. Ràng buộc muộn là gì
4. Điểm tương đồng giữa ràng buộc sớm và muộn
5. So sánh cạnh nhau - Ràng buộc sớm so với muộn ở dạng bảng
6. Tóm tắt

Liên kết sớm là gì?

Trong Binding sớm, thông tin lớp được sử dụng để giải quyết việc gọi phương thức. Binding sớm xảy ra tại thời gian biên dịch. Nó còn được gọi là liên kết tĩnh. Trong quá trình này, ràng buộc xảy ra trước khi chương trình thực sự chạy. Phương pháp quá tải được liên kết bằng cách sử dụng ràng buộc sớm. Tham khảo chương trình dưới đây.

Hình 01: Lớp tính toán

Hình 02: Chương trình chính cho liên kết sớm

Theo chương trình trên, lớp Tính toán chứa một phương thức add chấp nhận hai giá trị nguyên và một phương thức add khác chấp nhận hai giá trị kép. Trong chương trình chính, một đối tượng của kiểu Tính toán được tạo. Khi truyền hai số nguyên cho phương thức add, nó sẽ gọi phương thức add chấp nhận hai số nguyên. Khi truyền hai giá trị kép cho phương thức add, nó sẽ gọi phương thức tương ứng với hai giá trị kép. Quá trình ràng buộc này xảy ra tại thời gian biên dịch. Tất cả thông tin cần thiết được biết trước khi chạy, vì vậy nó làm tăng hiệu quả chương trình và tốc độ thực hiện.

Ràng buộc muộn là gì?

Trong Binding muộn, đối tượng được sử dụng để giải quyết việc gọi phương thức. Binding muộn xảy ra trong thời gian chạy. Nó còn được gọi là ràng buộc năng động. Trong quá trình này, các ràng buộc xảy ra khi thực hiện chương trình. Các phương thức ghi đè được liên kết bằng cách sử dụng ràng buộc muộn. Tham khảo chương trình dưới đây.

Hình 03: Lớp hình dạng

Hình 04: Lớp tròn

Hình 05: Lớp tam giác

Hình 06: Chương trình chính cho Binding muộn

Theo chương trình trên, lớp Shape có phương thức vẽ. Lớp Circle và lớp Tam giác lớp mở rộng lớp Shape. Do đó, hai lớp này có thể kế thừa các thuộc tính và phương thức của lớp Shape. Lớp hình dạng là lớp cơ sở. Các lớp Circle và Triangle là các lớp dẫn xuất. Vòng tròn lớp và Tam giác lớp cũng có phương thức vẽ với các triển khai riêng. Vì vậy, phương thức vẽ trong lớp Shape bị ghi đè bởi các phương thức vẽ của các lớp dẫn xuất.

Trong chương trình chính, một biến tham chiếu s có dạng Shape được tạo. Tại thời gian biên dịch, trình biên dịch sẽ chỉ tham chiếu phương thức vẽ lớp cơ sở. Trong thời gian chạy, các phương thức vẽ khác nhau sẽ thực thi. Đầu tiên, s sẽ trỏ đến đối tượng kiểu Shape. Vì vậy, phương thức vẽ của lớp Shape được gọi. Sau đó, s sẽ trỏ đến đối tượng của kiểu Circle và nó sẽ gọi phương thức vẽ của lớp Circle. Cuối cùng, s sẽ trỏ đến đối tượng của loại Tam giác và nó sẽ gọi phương thức vẽ trong lớp Tam giác. Các phương thức được gọi tùy thuộc vào các đối tượng. Do đó, đối tượng được sử dụng để giải quyết cuộc gọi phương thức trong Binding muộn. Thông tin cần thiết cho liên kết được cung cấp trong thời gian chạy, do đó tốc độ thực hiện chậm hơn so với ràng buộc sớm.

Sự giống nhau giữa ràng buộc sớm và ràng buộc muộn?

  • Cả Binding sớm và Binding muộn đều liên quan đến đa hình là một trụ cột của OOP.

Sự khác biệt giữa ràng buộc sớm và ràng buộc muộn là gì?

Binding sớm vs Binding muộn

Quá trình sử dụng thông tin lớp để giải quyết việc gọi phương thức xảy ra tại thời điểm biên dịch được gọi là Binding sớm. Quá trình sử dụng đối tượng để giải quyết cuộc gọi phương thức xảy ra trong thời gian chạy được gọi là Binding muộn.
 Thời gian đóng sách
Binding sớm xảy ra vào thời gian biên dịch. Binding muộn xảy ra trong thời gian chạy.
Chức năng
Binding sớm sử dụng thông tin lớp để giải quyết việc gọi phương thức. Binding muộn sử dụng đối tượng để giải quyết cuộc gọi phương thức.
 Từ đồng nghĩa
Binding sớm còn được gọi là ràng buộc tĩnh Binding muộn còn được gọi là ràng buộc động.
Tần suất xảy ra
Phương pháp quá tải được liên kết bằng cách sử dụng ràng buộc sớm. Các phương thức ghi đè được liên kết bằng liên kết muộn.
Tốc độ thực hiện
Tốc độ thực hiện nhanh hơn trong ràng buộc sớm. Tốc độ thực hiện thấp hơn trong ràng buộc muộn.

Tóm tắt - Sớm vs Binding muộn

OOP được sử dụng phổ biến để phát triển phần mềm. Một trụ cột chính của OOP là đa hình. Binding sớm và Binding muộn có liên quan đến điều đó. Binding sớm xảy ra tại thời gian biên dịch trong khi Binding muộn xảy ra trong thời gian chạy. Trong quá tải phương thức, liên kết xảy ra bằng cách sử dụng liên kết sớm. Trong phương thức ghi đè, liên kết xảy ra bằng cách sử dụng liên kết muộn. Sự khác biệt giữa Binding Early và late là Binding Early sử dụng thông tin lớp để giải quyết việc gọi phương thức trong khi Binding muộn sử dụng đối tượng để giải quyết việc gọi phương thức.

Tài liệu tham khảo:

1.Phỏng vấn Java 04 - Liên kết tĩnh Vs Binding động, Hướng dẫn Mahika, ngày 27 tháng 12 năm 2017. Có sẵn tại đây
2.Công thức phương thức động trong Java | Hướng dẫn cốt lõi Java | Học tập. Có sẵn ở đây