Aspect-Oriented Programming viết tắt AOP

Aspect-Oriented Programming viết tắt AOP – lập trình hướng khía cạnh: là một kỹ thuật lập trình (kiểu như lập trình hướng đối tượng) nhằm phân tách chương trình thành cách moudule riêng rẽ, phân biệt, không phụ thuộc nhau. Khi hoạt động, chương trình sẽ kết hợp các module lại để thực hiện các chức năng nhưng khi sửa đổi 1 chức năng thì chỉ cần sửa 1 module. AOP không phải dùng để thay thế OOP mà để bổ sung cho OOP.

Ưu điểm:

  • Thiết kế đơn giản: “You aren’t gonna need it (YAGNI)” – chúng ta chỉ cài đặt những thứ chúng ta thực sự cần mà không bao giờ cài đặt trước.
  • Cài đặt chương trình một cách trong sáng: mỗi một module chỉ làm cái mà nó cần phải làm, giải quyết được hai vấn đề code tangling và code scattering.
  • Tái sử dụng dễ dàng.

Các thuật ngữ trong AOP

  • Core concerns: hàm chính của chương trình (các method cần thực hiện log)
  • Crosscutting concerns: những chức năng khác của chương trình: (chức năng log)
  • Join points: một điểm của chương trình, là nơi có thể chèn những “custom action” của bạn
  • Pointcut: có nhiều cách để xác định joinpoint, những cách như thế được gọi là pointcut.
  • Advice: là những xử lý phụ được thêm vào xử lý chính, code để thực hiện các xử lý đó được gọi Adivce.