Tôi đang cố gắng thiết kế kiến trúc của một hệ thống mà tôi sẽ triển khai trong C ++ và tôi đã tự hỏi liệu mọi người có thể nghĩ ra một cách tiếp cận tốt hay phê phán cách tiếp cận mà tôi đã thiết kế cho đến nay.
Trước hết, vấn đề chung là một đường ống xử lý hình ảnh. Nó chứa một số giai đoạn và mục tiêu là thiết kế một giải pháp có tính mô đun cao, sao cho bất kỳ giai đoạn nào cũng có thể dễ dàng hoán đổi và thay thế bằng một đoạn mã tùy chỉnh (để người dùng có thể tăng tốc độ nếu họ biết rằng một giai đoạn nhất định bị hạn chế theo một cách nhất định trong vấn đề của mình).
Suy nghĩ hiện tại là một cái gì đó như thế này:
struct output; /*Contains the output values from the pipeline.*/
class input_routines{
public:
virtual foo stage1(...){...}
virtual bar stage2(...){...}
virtual qux stage3(...){...}
...
}
output pipeline(input_routines stages);
Điều này sẽ cho phép mọi người phân lớp input_routines và ghi đè bất kỳ giai đoạn nào họ muốn. Điều đó nói rằng, tôi đã làm việc trong các hệ thống như thế này trước đây và tôi thấy phân lớp và các công cụ mặc định có xu hướng lộn xộn, và có thể khó sử dụng, vì vậy tôi không ham chơi về việc tự viết một cái. Tôi cũng đã suy nghĩ về một cách tiếp cận STLish hơn, trong đó các giai đoạn khác nhau (có 6 hoặc 7) sẽ được mặc định các tham số mẫu.
Bất cứ ai cũng có thể đưa ra một lời phê bình về mô hình ở trên, suy nghĩ về cách tiếp cận mẫu hoặc bất kỳ kiến trúc nào khác xuất hiện trong tâm trí?