TỔNG HỢP CÁC KHÁI NIỆM CẦN BIẾT TRONG LẬP TRÌNH HƯỚNG KHÍA CẠNH AOP

23-05-2021 16:18

Có lẽ dân lập trình đã quá quen với lập trình hướng đối tượng - Object Oriented Programming (OOP) nhưng không phải ai cũng thành thạo với lập trình hướng khía cạnh - Aspect Oriented Programming (AOP). Trong bài viết này, ITPlus Academy sẽ tổng hợp những khái niệm cần biết về lập trình hướng khía cạnh nhé !

1. AOP là gì ?

Aspect Oriented Programming (AOP) - Lập trình hướng khía cạnh là dạng lập trình cho phép phân tách chương trình thành các module tách biệt, không phụ thuộc nhau.

Chương trình kết hợp các module lại khi hoạt động, nhằm thực hiện các chức năng. Tuy nhiên, nếu muốn chỉnh sửa chức năng thì bạn chỉ cần chỉnh sửa một module nào đó. Điều này đồng nghĩa với việc AOP cho phép chúng ta thêm vào các ứng dụng đã tồn tại những đoạn code xử lý mới mà không phải chỉnh sửa toàn bộ code của các ứng dụng này.

2. Các khái niệm cần biết về lập trình hướng khía cạnh

- Core concern (Primary concern): Logic xử lý chính của chương trình.

- Cross-cutting concern: Các logic xử lý phụ cần được chương trình thực hiện khi core concern được xem như logging, security, monitoring, tracing, …

- Joinpoint: Một điểm trong chương trình -  những chỗ chèn được các cross-cutting concern. Tuy nhiên, Joinpoint có thể là ngoại lệ được "throw" và khi đó phương thức được gọi hay field có thể được thay đổi. Điều này có nghĩa là sau khi chạy một method nào đó, bạn phải ghi log lại và Jointpoint chính là điểm ngay sau method đó được thực thi.

- Pointcut: các cách xác định Joinpoint. Như vậy, Pointcut có thể hiểu là câu lệnh. 

- Advice: Code được thực hiện để tiến hành các xử lý phụ bổ sung  thêm vào xử lý chính. Advice  được phân ra như sau:

+ Before Advice: Đây là loại đươc chạy trước khi thực hiện các JoinPoint Method.

+ After Advice hay Finally Advice: Đây là loại được chạy sau JoinPoint. Lưu ý After Advice vẫn thực hiện được dù JoinPoint có được thực thi thành công hay không, cả khi có bị exception.

+ After Returning Advice: Đây là loại thực thi sau khi JoinPoint được thực thi thành công và không bị lỗi exception.

+ After Throwing Advice: Đây là loại tương tự như After Returning Advice, tuy nhiên nó dùng cho trường hợp JointPoint thực thi mà throw ra exception.

+ Around Advice: Đây là loại thực hiện xung quanh JoinPoint. Do vậy, người dùng có thể quyết định có thực thi JoinPoint hay không khi sử dụng loại này. Không chỉ vậy, nó cũng cho phép người dùng viết code trong đó Advice chạy trước hay sau JoinPoint tùy ý. 

- Aspect gồm toàn bộ Cross-cutting Concern, các PointCut, các JoinPoint, các Advice. Người dùng có thể  config trong XML để tạo ra Class Aspect

- Target Object: Các đối tượng mà advice được áp dụng 

- AOP Proxy: bạn dùng nó để cài đặt các Aspect.

- Weaving: Quá trình thực hiện việc kết nối các thành phần Non-aspect( Object, Types) và  Aspect tạo nên Advised Object.

Trên đây là kiến thức cơ bản về lập trình hướng khía cạnh AOP. Chúc các bạn thành công !!!

-------------------------------------------------------------------------------------------------------

Hiện tại, ITPlus Academy có tổ chức các khóa học thiết kế chuyên nghiệp, bạn có thể tham khảo tại:

Ban Truyền Thông ITPlus                                                                                                                                                                         

Bài viết cùng chủ đề