C (MVC模式)中的对象所有权
Object ownership in C++ (MVC pattern)
我足够理解MVC模式,但是出乎意料的是,在C 中实现实际实现的信息量很少。对于此应用程序,我正在使用wxWidgets
和boost::depedency_injection
,但是情况应该是通用的。
在C 11/14中,我们有严格的对象所有权规则:对象是在所有者之间共享的,或者是一个所有者独有的。我们还为Callee非拥有的对象提供了老式的指针。
那么,问题是:谁在C ?
中拥有MVC中的哪个对象(模型/视图/控制器)我现在的猜测:
Views
拥有boost:di
注射为unqiue_ptr
的controllers
。Controllers
归views
所有,DO 不是任何形式的存储状态(仅在models
目录上执行的过程)。Models
本身是通过将它们注入shared_ptr
之间的所有controllers
之间共享的,并用于存储结果并为controllers
操作提供数据
MVC是正确的?
嗯,有很多MVC变体很难回答。但是不,控制器不是视图所拥有的,它应该是相反的,因为控制器是视图和模型之间的功能桥。模型附在视图上,因此视图可以拥有模型。
检查第一个C 示例或第二个C 示例。第一个拥有"静态"所有权,而第二个所有权中的所有权更加波动。
相关文章:
- 对象超出范围/转让所有权
- 从函数返回范围视图时,带有std::span:中间对象所有权的C++Ranges-v3
- Qt对象所有权内存泄漏
- 如何将对象的所有权传递给函数的外部
- 唯一 ptr 将所有权移动到包含对象的方法
- 如何为生存时间少于对象所有者的类组织对象所有权?
- UI自动化回调中com对象的所有权
- 使用PYBIND11,如何为Array_t对象设置基础内存的所有权
- C (MVC模式)中的对象所有权
- 可以提升::p ython将对象的所有权传递给python回调函数
- std::unique_ptr 来转移 const 对象的所有权
- 如何在不复制和保留 std::string 对象的情况下获得 C++ std::string 字符数据的所有权
- 我能不能做一个unique_ptr不拥有其尖头对象的所有权
- 指向没有所有权的堆栈对象的指针
- 在C++11中,将对象的所有权从一个unique_ptr转移到另一个unique _ptr
- 存储在矢量中的对象的所有权
- 如何在C++或Winapi中转移同步对象的所有权
- NSArray如何获得一个c++对象的所有权
- 使用“放置新”转移对象所有权
- 在 std::分配器重新绑定上转移对象所有权