Bir mikro denetleyicide CAN arabiriminden kareleri yakalayan bir C++ sınıf A var. A sınıfı, tek tek yakalanan kareleri kullanan başka bir B sınıfı (ve C ve D ..) uygulamaya çalışıyorum. Özünde, A sınıfı, yakalanan çerçeveleri çerçevenin içeriğine bağlı olarak üst katmandan sınıflardan birine yönlendirir. Bir çerçevenin alındığı her seferinde, bir üst sınıftan nesnenin nesnesine bir olay gönderilecek şekilde, bir tür olay yürütme mekanizmasını (bir programlama acentası olmaya çok aşina değilim) uygulamalı mıyım? Ya da bunu B sınıfı C, C, ... sınıfından devralarak başarabilirim. Bazıları bana nasıl iyi ve kolay bir mantık geliştirecek?Farklı sınıflardaki nesneler arasındaki olay yönetimi
Düzenleme: Sınıf A'da anahtar deyim var ve daha sonra bir durum temelinde B, C, D, .... sınıflarından biri olarak adlandırılan işlem yöntemini çağırmak için çok iyi bir yol değil değer. Ancak, bu akıllıca bir yol değil çünkü A sınıfı artık istemediğim B, C, D ... vb. Sınıfları kullanıyor. A Sınıfı, B, C, D, .....
Muhtemelen bir "iş/süreç" işlevi bildiren her bir işlemci için ortak bir arabirim (temel sınıf) tanımlardım. Hepsini bir kapta saklarım. Çerçeveyi almak ve liste denetleyicilerinin her birine iletmek için A sınıfını kullanacak bir "denetleyici" sınıfı olurdu. Şimdi, sipariş verenin önemli olup olmadığına bağlı olarak, kontrolörlerin listesini oluşturmak size kalmış ... –
Bir düzenleme yaptım. Tekrar bir göz atabilir misin? – Paindoo
Anladım, yani B, C veya D sınıflarının yalnızca bir tanesinin çerçeveyi işleyebileceğini kastediyorsunuz. Hangisi alan değerlerinden biriyle biliyorsun. Bu, fabrika tasarım deseninin çok yaygın bir kullanımı olup, google'da görünür. Eğer hangisi olduğunu bilmiyorsanız, o zaman daha az yaygın olan sorumluluk kalıbı zincirini kullanabilirsiniz, ama isterseniz bunun için biraz sahte kod yazabilirim. –