在模型-视图-控制器中镜像 C++ 模型类层次结构

问题描述 投票:0回答:0

我有一个系统,它描述了许多具有复杂数据和行为的设备,这些设备由 C++ 中复杂的类层次结构表示。系统的这一部分对这些设备的屏幕表示一无所知,部分原因是解耦,部分原因是可能有许多不同的屏幕表示。

在这里 MVC 设计模式 / 模型-视图-控制器 开始发挥作用,将视图与模型连接起来。但作为高级模式,它并没有说明用特定语言反映模型的类层次结构。

现实需要为每个视图创建类的镜像层次结构。更重要的是,我应该为每个视图创建一个工厂,它将为模型对象创建相应的视图类对象。这是大量肮脏和类似的代码。每次有人在模型类层次结构(新设备)中添加一个新类时,他必须记得更新工厂,因为唯一知道类 SpecficDeviceModel 和 SpecificDevice2DView 之间关系的人是开发人员,对于编译器来说它们是独立的类,当然。

所以这是我的问题。有了 C++ 中所有这些最近的 20/23 创新,有什么方法可以简化这项任务吗?有没有一种方法可以通过许多视图类来表示许多模型类而无需大量的“连接”代码?

预订

当然,我可以编写一个复杂的宏来代替声明将实现工厂数据库的视图。

当然,我可以根据我的命名约定编写python脚本来更新Factory。

但对我而言,这些都是复杂的“hacky”解决方法。有什么直接的方法可以在 C++ 中解决这个问题吗?据我所知,我们在 C++ 中仍然没有反思来做到这一点。

c++ model-view-controller design-patterns factory observer-pattern
© www.soinside.com 2019 - 2024. All rights reserved.