LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG: KỸ THUẬT SỬ DỤNG LAZY LOADING

Ở các bài trước, tao và chúng mày đã tìm hiểu về các hiểu biết cơ bản trong lập trình hướng đối tượng. Tiếp tục trong bài này, chúng ta sẽ cùng tìm hiểu về kỹ thuật sử dụng lazy loading trong ứng dụng.

Lazy loading là phương thức rất quan trọng trong lập trình hướng đối tượng. Vì nhờ có nó ta không phải là không tiết kiệm được rất rất nhiều thao tác gọi nạp file khi sử dụng. Bản thân lazy loading sử dụng magic method (các phương thức đặc biệt trong PHP) để triệu gọi dữ liệu. Cụ thể là phương thức __autoload.




Phương thức này sẽ được tự động gọi khi một đối tượng được tạo mới. Cũng vì lý  kết luận là mà chúng ta sử dụng nó để require một file chứa lớp đó.
Rõ ràng trên file test.php của chúng ta ở trên không hề có lớp nào tên ABC và cũng không có phương thức nào tên là demo cả. Vậy thì  tại vì sao ta không phải là không gọi được chúng ra bên ngoài ?.

Bởi vì khi ta khởi tạo lớp ABC, lập tức sẽ gọi autoload. Và phương thức autoload sẽ lấy tên lớp ABC như 1 tham số $url và dùng lệnh require để nạp file tên ABC.php vào.

Khi đó, file ABC.php của chúng ta có lớp tên ABC và cũng có phương thức tên demo nên file test.php của chúng ta mới xuất giá trị của phương thức demo ra bên ngoài được.

Bạn có nhận thấy sử dụng 1 lớp ta phải require các lớp ở trên đầu rất nhiều. Thì giờ đây với lazy loading ta chỉ việc gọi lớp thì tự động hệ thống sẽ nạp file ứng với tên lớp đó. Điều này giúp ta bớt đủ thứ thời gian và giảm nguyên tài khi phải thực hiện việc nạp load các thư viện tại trên đầu các file rất nhiều.

Tuy nhiên, cần lưu ý rằng. Khi sử dụng cơ chế này, thường ta phải chú ý tới tên lớp và tên file. Chúng phải có sự liên quan nhất định. Ví dụ: Tên lớp và tên file giống nhau thì nó đã liên quan đến nhau. Vì nếu không giống nhau thì quá trình nạp load sẽ thất bại. Và dĩ nhiên ta không lấy được các lớp, phương thức như mong muốn vậy nên chúng mày phải nạp load cẩn thận.

Share on Google Plus

About Unknown

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 nhận xét:

Đăng nhận xét