Giả sử tôi có một giao diệnAutomatic Proxy Lớp
class I{
public:
virtual void f(int id)=0;
virtual void g(int id, float x)=0;
}
Tôi cần một lớp proxy, để làm một số loại id để lập bản đồ con trỏ
class Proxy : I
{
I * i[5];
public:
void f(int id)
{
i[id]->f(id);
}
void g(int id, float x)
{
i[id]->g(id, x);
}
}
Vì vậy, khi tôi viết
Proxy *p;
p->f(1);
f được gọi trên đối tượng có id = 1
có một số trường hợp và giao diện tương đối lớn. Vì vậy, tôi không muốn mã tất cả các chức năng trong lớp proxy. Có cách nào để tự động thực hiện không? có lẽ sử dụng các macro, mẫu, quá tải "->" vv
Có nhiều giao diện bạn viết cùng một proxy cho, hoặc nhiều lớp proxy cho cùng một giao diện, hoặc nhiều proxy cho nhiều giao diện? – hansmaad
có một chút khó hiểu: có vẻ như vậy và ví dụ của tôi không biết chỉ mục của riêng mình, nhưng nó được biết khi nào các phương pháp f hoặc g của anh ta được gọi là ... tại sao? thiết kế lạ. Tôi sẽ lập kế hoạch toàn bộ điều với tôi không bao giờ biết chỉ số của riêng mình. Điều đó sẽ có ý nghĩa tốt hơn. –
@hansmaad, nhiều proxy cho nhiều giao diện (một-một) –