Model view controller 嵌套组件应该如何与GUI应用程序中的模型交互?
广泛的设计/架构问题。如果GUI中有嵌套组件,那么这些组件与数据交互的最常见方式是什么 例如,假设一个组件在其按钮上点击一次以保存数据。是否应该将保存请求委托给该组件的祖先,最上层的祖先最终将请求传递给控制器 或者GUI应用程序中的模型/数据存储通常是单例的,因此层次结构中任何级别的组件都可以直接获取/设置数据Model view controller 嵌套组件应该如何与GUI应用程序中的模型交互?,model-view-controller,user-interface,design-patterns,oop,Model View Controller,User Interface,Design Patterns,Oop,广泛的设计/架构问题。如果GUI中有嵌套组件,那么这些组件与数据交互的最常见方式是什么 例如,假设一个组件在其按钮上点击一次以保存数据。是否应该将保存请求委托给该组件的祖先,最上层的祖先最终将请求传递给控制器 或者GUI应用程序中的模型/数据存储通常是单例的,因此层次结构中任何级别的组件都可以直接获取/设置数据 或者控制器是作为组件层次结构的依赖项注入的,因此任何给定的组件都只是数据存储/模型的一个中间层?我的第一个想法是定义一个单例数据层API,GUI组件可以调用它 如果您想要多个数据实例,那
或者控制器是作为组件层次结构的依赖项注入的,因此任何给定的组件都只是数据存储/模型的一个中间层?我的第一个想法是定义一个单例数据层API,GUI组件可以调用它 如果您想要多个数据实例,那么就给出“句柄”,它可以由GUI组件存储,并传递到数据层以再次取出数据
这个想法类似于,例如,文件系统API;或SQL server API;或者任何O/S API。我的第一个想法是定义一个单例数据层API,它可以由GUI组件调用 如果您想要多个数据实例,那么就给出“句柄”,它可以由GUI组件存储,并传递到数据层以再次取出数据
这个想法类似于,例如,文件系统API;或SQL server API;或任何O/S API。通常,使用嵌套组件操作的选项很少:
- 嵌套组件使用与根组件相同的模型/嵌套组件使用自己的模型
- 嵌套组件与根组件相同的控制器交互/嵌套组件使用自己的控制器操作
我认为在模型/控制器中使用单例是个坏主意,尤其是在垃圾收集器中使用语言。使用singleton很简单,但是如果您需要根视图上嵌套控件的第二个实例怎么办 通常情况下,很少有可能使用嵌套组件进行操作:
- 嵌套组件使用与根组件相同的模型/嵌套组件使用自己的模型
- 嵌套组件与根组件相同的控制器交互/嵌套组件使用自己的控制器操作
我认为在模型/控制器中使用单例是个坏主意,尤其是在垃圾收集器中使用语言。使用singleton很简单,但是如果您需要根视图上嵌套控件的第二个实例怎么办 我同意上述观点:
- 将数据推送到底层控制器/视图模型,与父视图的C/VM共享,这是我在大多数应用程序中所做的
- 单身是个坏主意!如果您认为需要单例,那么可以通过调用缓存实例的工厂来实现相同的结果。例如,factory.GetAcountViewModel()李>
- 一般来说,我不会将处理委托给家长。这降低了代码的可测试性,因为现在您正在通过UI层传递数据和状态李>
如果您还想继续阅读,您可能还想签出,这解决了组合UI的一般问题。我同意上面的观点:
- 将数据推送到底层控制器/视图模型,与父视图的C/VM共享,这是我在大多数应用程序中所做的
- 单身是个坏主意!如果您认为需要单例,那么可以通过调用缓存实例的工厂来实现相同的结果。例如,factory.GetAcountViewModel()李>
- 一般来说,我不会将处理委托给家长。这降低了代码的可测试性,因为现在您正在通过UI层传递数据和状态李>