Tôi đã đọc một số câu hỏi tương tự về vấn đề này nhưng không có câu hỏi nào giải quyết được vấn đề tôi đang gặp phải. Câu trả lời điển hình là để đúc như lớp dẫn xuất nhưng tôi không thể vì tôi không biết loại lớp dẫn xuất.Làm cách nào để gọi một phương thức lớp dẫn xuất từ lớp cơ sở?
Dưới đây là ví dụ của tôi:
class WireLessDevice { // base class
void websocket.parsemessage(); // inserts data into the wireless device object
}
class WiFi : WireLessDevice { // derived class
GPSLoc Loc;
}
Device không dây cũng có thể được bắt nguồn để làm cho Bluetooth, Wi-Max, Cellular, vv các thiết bị và do đó tôi không biết đó là loại wirelessdevice sẽ nhận được các dữ liệu .
Khi nhận được gói GPS trên websocket trong lớp cơ sở, tôi cần cập nhật vị trí của thiết bị có nguồn gốc. Tôi nghĩ có lẽ việc gửi một tin nhắn thông qua hàng đợi hoặc tạo một trình xử lý sự kiện và gửi vị trí trong các đối số sự kiện, nhưng những điều đó có vẻ hơi khó khăn khi dữ liệu nằm trong lớp.
Có thứ gì đó được tích hợp sẵn trong ngôn ngữ cho phép tôi gọi thiết bị có nguồn gốc từ lớp cơ sở mà không biết loại đó không?
Hãy xem mẫu trang trí. Vấn đề của bạn dường như là thiết kế sai lầm của bạn. –
Không cần trang trí ... Hãy xem các phương pháp trừu tượng hoặc ảo ... – Crisfole