Tôi nghĩ cách tiếp cận tốt hơn là nắm lấy khung bạn đang sử dụng và sử dụng tín hiệu/khe.
Điều đó đang được nói, nếu mã trong câu hỏi hoạt động, và không phải là xấu hoặc gây ra vấn đề, thì tốt nhất bạn nên để nó một mình.
Tư vấn Signal/Slot documentation mô tả tại sao/Khe cắm tiếp cận tín hiệu là tốt hơn:
Callback có hai sai sót cơ bản: Thứ nhất, họ không loại an toàn. Chúng tôi không bao giờ có thể chắc chắn rằng chức năng xử lý sẽ gọi lại số gọi với các đối số chính xác. Thứ hai, gọi lại mạnh mẽ kết hợp với chức năng xử lý vì chức năng xử lý phải biết gọi lại để gọi.
Do nhận thức được những điều sau đây mặc dù:
So với callbacks, tín hiệu và khe cắm là hơi chậm vì sự linh hoạt tăng mà họ cung cấp
Tốc độ có lẽ không quan trọng đối với hầu hết các trường hợp, nhưng có thể có một số trường hợp cực đoan gọi lặp lại tạo nên sự khác biệt.
Nguồn
2010-06-09 15:27:51
Cẩn thận với việc sử dụng cụm từ của bạn, thay đổi từ cuộc gọi lại kiểu C thành tín hiệu/vị trí âm thanh giống như viết lại không phải là trình cấu trúc lại trong trường hợp này. Nếu bạn đang thay đổi mã trong một thư viện, bạn có thể lấy đi bằng một trình tái cấu trúc, nhưng nếu nó được sử dụng trong suốt ứng dụng của bạn, bạn có nhiều khả năng sẽ chuyển sang lãnh thổ viết lại. Tôi không có ý cầu kỳ, nhưng mọi người thường lạm dụng thuật ngữ refactor chỉ để thay đổi. –
Mã nằm bên trong một thư viện cụ thể. Ở những nơi khác, chúng tôi đang sử dụng tín hiệu và khe. Cám ơn bạn đã góp ý. –