在C++中,AOP(面向切面編程)通常通過使用代理模式來實現。以下是一個簡單的示例,演示如何在C++中使用AOP:
#include <iostream>
// 定義一個接口類
class Subject {
public:
virtual void request() = 0;
};
// 定義一個具體類,實現接口
class RealSubject : public Subject {
public:
virtual void request() {
std::cout << "RealSubject::request() called" << std::endl;
}
};
// 定義一個代理類,實現接口
class Proxy : public Subject {
private:
RealSubject realSubject;
public:
virtual void request() {
// 在調用真實對象之前執行額外的邏輯
std::cout << "Proxy::request() called" << std::endl;
// 調用真實對象的方法
realSubject.request();
// 在調用真實對象之后執行額外的邏輯
std::cout << "Proxy::request() finish" << std::endl;
}
};
int main() {
Proxy proxy;
proxy.request();
return 0;
}
在這個示例中,代理類 Proxy
實現了接口 Subject
,在 request
方法中添加了額外的邏輯。當調用 Proxy
的 request
方法時,會先執行代理類中的額外邏輯,然后再調用真實對象 RealSubject
的 request
方法。
這是一個簡單的AOP示例,實際中可以根據具體需求來實現更復雜的AOP功能。