1. AOP là gì?

Aspect Oriented Programming (AOP) – xây dựng phía khía cạnh: là 1 trong nghệ thuật xây dựng (hình trạng nhỏng xây dựng phía đối tượng) nhằm mục tiêu phân bóc tách công tác thành cách moudule riêng rẽ, minh bạch, ko dựa vào nhau.Bạn sẽ xem: Spring aop là gì

khi hoạt động, công tác đang phối kết hợp những module lại để thực hiện các chức năng dẫu vậy lúc sửa đổi 1 chức năng thì chỉ việc sửa 1 module.

Bạn đang xem: Spring aop là gì

AOPhường chưa phải dùng để sửa chữa thay thế OOP mà để bổ sung cập nhật đến OOP.

*

Ví du 1:

1 cửa hàng được chia thành những ban ngành, phòng nghệ thuật, chống kế toán, chống marketing (từng chống y như một module trong chương thơm trình)…

Mỗi phòng thực hiện một trách nhiệm riêng, cơ mà bắt buộc phối hợp lại để quản lý một cửa hàng.

– Trong AOPhường. tất cả định nghĩa “lát cắt”, “điểm cắt”, nhất thời phát âm là module A vẫn xen vào module B để tiến hành 1 tác dụng làm sao đó mà ko có tác dụng tác động module B, “điểm cắt” là địa chỉ mà lại module A xen vào module B

Ví dụ, vào đơn vị, tất cả những nhân viên đa số cần phải quyết tân oán thuế, ví như từng fan 1 tiến hành vẫn tốn tương đối nhiều thời gian với ảnh hưởng tới công ty. Phòng kế toán vẫn gộp lại và tiến hành quyết toán mang đến tất cả nhân viên cấp dưới. Bây giờ đồng hồ phép tắc thuế thay đổi, thì cũng chỉ cần mỗi chống kế tân oán sửa đổi lại mang đến tương xứng, ko tác động gì cho tới các ban ngành khác. (Module chống kế tân oán thực hiện lát giảm cùng với các chống còn sót lại ngơi nghỉ trọng trách quyết tân oán thuế)

Điểm giảm tại chỗ này tùy theo xếp ước ao, cơ chế hưởng thụ, ví dụ chế độ đề xuất là nên quyết toán thuế cuối năm thì phòng kế tân oán sẽ triển khai lát giảm quyết toán thù thuế cho các ban ngành còn sót lại vào cuối năm.

Ví dụ 2:

Trong code các bạn hay thực hiện viết log cho những method (method như thế nào chạy, lỗi gì xảy ra…). Rõ ràng Việc viết log chẳng tương quan gì mang đến tác dụng của method.

Xem thêm: Exp Trong Toán Học Là Gì ? Chi Tiết Về Ý Nghĩa Của Exp Trong Từng Lĩnh Vực

Bây giờ đồng hồ áp dụng AOPhường, ta đã phân tách bóc công dụng log ra một module riêng rẽ cùng cần sử dụng nó tiến hành các lát cắt cùng với những method bắt buộc tiến hành log.

Muốn log làm việc đầu method, điểm giảm vẫn là làm việc đầu các method, muốn cắt làm việc cuối method thì điểm giảm sẽ là cuối method.

ví dụ như 3:

Trong lập trình sẵn website, có 1 khái nhiệm filter, Có nghĩa là tất cả những request được lựa chọn vẫn đông đảo chạy qua filter đó.

2. Ưu yếu điểm của AOPhường

Ưu điểm:

Thiết kế 1-1 giản: “You aren’t gonmãng cầu need it (YAGNI)” – chúng ta chỉ thiết lập hồ hết thiết bị họ đích thực đề nghị nhưng không bao giờ thiết đặt trước. Cài đặt công tác một giải pháp trong sáng: từng một module chỉ làm cho chiếc nhưng mà nó cần được làm, xử lý được hai vụ việc code tangling với code scattering. Tái áp dụng tiện lợi.

Nhược điểm:

Khái nhiệm tương đối trừu tượng, độ trừu tượng của công tác cao Luồng lịch trình tinh vi. 3. Các thuật ngữ trong AOPhường.

Mình sẽ đem ví dụ mang đến bài toán tách bóc tính năng log nhằm minh họa.

Core concerns: hàm chính của chương trình (các method bắt buộc thực hiện log) Crosscutting concerns: đều tác dụng khác của chương trình: (tác dụng log) Join points: một điểm của lịch trình, là nơi có thể cyếu đa số “custom action” của bạn Pointcut: có rất nhiều cách để xác định joinpoint, các cách như vậy được Điện thoại tư vấn là pointcut. Advice: là hầu như giải pháp xử lý prúc được cung ứng xử trí thiết yếu, code để thực hiện những xử trí đó được Gọi Adivce. 4. Code ví dụ bởi Java.

Để tiến hành AOP trong Java ta rất có thể áp dụng những thiết lập cung cấp bởi

AspectJ Spring AOP Jquái dị AOPhường lấy một ví dụ AOP.. cùng với Spring AOP: https://stackjava.com/spring/spring-aop-1.html lấy ví dụ như AOP với Spring + AspectJ: https://stackjava.com/spring/spring-core-aop-aspectj.html
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *