Questions tagged «view»

7
业务逻辑是否可能不会潜入视图?
在过去的三年中,我已经为多个Web应用程序项目进行了开发,无论是个人的还是工作的,我似乎都无法弄清楚是否有可能至少某些业务逻辑没有出现在应用程序的视图层中。 在大多数情况下,会出现类似“如果用户选择了选项x,那么应用程序必须使他能够提供y的信息,否则,他/她应该提供信息z”之类的问题。或执行一些AJAX操作,该操作应将一些更改应用于模型,但除非用户明确要求,否则不要提交更改。这些是我遇到的一些最简单的问题,我无法弄清楚如何避免视图中的复杂逻辑。 我读过的大多数有关MVC的书通常都展示一些非常琐碎的示例,例如CRUD操作,它们仅更新服务器上的数据并显示它们,但在大多数功能丰富的应用程序中,情况并非如此。 是否可以实现完全没有业务逻辑的视图?

3
python业务逻辑应放在Django的确切位置
我刚刚开始学习Django / Python / Web开发。这个问题已经困扰我一段时间了。 我正在Django中创建带有多个模板的应用程序。我有一个views.py,它基本上只是呈现对相应模板的响应,并且我有一个我在其中构造数据库的model.py。在我的一个模板中,我需要上传一个图像(我能做到),并且我需要运行一个基于上传图像特性的逻辑(尚未完成)。这种逻辑涉及许多繁重的计算。执行计算后,逻辑应将一些已处理的信息(坐标)返回到模板。 我已经能够在一个独立的python桌面应用程序中成功地完成所有这些操作,一个又一个地调用python文件。但是,由于我现在想使它成为Web应用程序,所以我开始使用Django框架。 我已经做了很多搜索,但仍然无法弄清楚应将包含所有逻辑的Python文件放在哪里。我是否应该有另一个基于类的文件(logic.py),并从中调用它view.py?我在Google上搜索后发现,许多开发人员将其业务逻辑放在Django的models.py中。但是,我认为从直觉上来说是不正确的,因为模型应该专门与后端进行通信。任何帮助将不胜感激。

6
Rails-使用局部视图是否会减慢视图渲染?
我在Rails 3.1.0应用程序上遇到性能问题,现在我已经使用AR对查询进行了球型更改,因此视图仍然需要太多时间来呈现,我将视图,循环等划分为许多部分,在视图内部和其他局部内部动态渲染。 因此,拥有大量的局部片段是一种不好的做法? 是否应该减少局部数以改善视图渲染时间? 谢谢

4
4 + 1架构视图模型与UML之间的映射
我对4 + 1架构视图模型如何映射到UML感到有些困惑。 维基百科提供了以下映射: 逻辑视图:类图,通讯图,顺序图。 开发视图:组件图,包装图 流程视图:活动图 物理视图:部署图 方案:用例图 纸张UML时序图的构建在对象生命周期概念作用提供了以下映射: 逻辑视图(类图(CD),对象图(OD),序列图(SD),协作图(COD),状态图图(SCD),活动图(AD)) 开发视图(包装图,组件图), 流程视图(用例图,CD,OD,SD,COD,SCD,AD), 物理视图(部署图),以及 结合了上述四个方面的用例视图(用例图,OD,SD,COD,SCD,AD)。 网页UML 4 + 1 View Materials提供了以下映射: 最后,白皮书《将4 + 1视图架构与UML 2结合使用》给出了另一个映射: 逻辑视图类图,对象图,状态图和组合结构 过程视图顺序图,通讯图,活动图,时序图,交互概述图 开发视图组件图 物理视图部署图 用例视图用例图,活动图 我相信进一步的搜索也会揭示其他映射。 尽管各种人通常有不同的看法,但我不明白为什么会出现这种情况。特别地,每个UML图都从特定方面描述系统。那么,例如,为什么一位作者认为“顺序图”描述了系统的“逻辑视图”,而另一位作者却认为它描述了“过程视图”呢? 您能帮我澄清一下混乱吗?
15 architecture  uml  model  view 

2
清洁架构:什么是视图模型?
鲍勃叔叔在他的《清洁架构》一书中说,主持人应该将收到的数据放入他称为“视图模型”的东西中。 这与Model-View-ViewModel(MVVM)设计模式中的“ ViewModel”是一样的吗,还是简单的数据传输对象(DTO)? 如果不是简单的DTO,它与View有何关系?视图是否通过观察者关系从视图获取更新? 我的猜测是它更像是MVVM中的ViewModel,因为罗伯特·马丁(Robert Martin)在他的书的第23章中说: [演示者]的工作是接受来自应用程序的数据并对其进行格式化以进行演示,以便View可以将其简单地移动到屏幕上。例如,如果应用程序希望在字段中显示日期,它将向Presenter传递Date对象。然后,Presenter会将数据格式化为适当的字符串,并将其放置在称为View模型的简单数据结构中,View可以在其中找到它。 这意味着View以某种方式连接到ViewModel,而不是简单地将其作为函数参数接收(例如DTO就是这种情况)。 我认为这是因为,如果您查看图像,演示者将使用视图模型,而不是视图。演示者同时使用输出边界和输出数据DTO。 如果既不是DTO也不是MVVM中的ViewModel,请详细说明它是什么。

2
视图应该对模型了解多少?
我正在使用WPF和DAG支持的python包装器在python中构建应用程序。目前,我必须决定在数据和视图之间进行交互的一致方式。 据我所知,目前有两种明显的解决方案。 第一个类似于Android应用程序的结构。您有一个设置/填充视图的控制器。因此,控制器拥有该视图并仅推送将要显示的原始数据。视图只是一个愚蠢的层,不知道发生了什么以及数据来自何处。然后,如果用户与视图交互,它将向控制器发送回调(如果已注册)。 UserInfoController.py userInfoView = UserInfoView() userInfoView.onGenderChangedCallback = self.onGenderChangedCallback userInfoView.setUserGenderValue(user.getGender()) UserInfoView.py def setUserGenderValue(self, gender): self.userGender = gender def getView(self): return ui.Label(self.userGender, onEditCallback=self.onGenderChangedCallback) 第二个方法是将(引用)模型传递给视图,并让视图检索和更新数据。视图现在包含模型,因此它可以更新模型而无需对控制器进行任何其他回调。 UserInfoViewModel.py self.gender = 'Male' UserInfoView.py def getView(self): return ui.Label(self.ViewModel().getGender(), onEdited=self.genderEdited) def genderEdited(self, newValue): self.ViewModel().setGender(newValue) 所以我想我要问的是,我应该传递非常原始的数据并保持视图尽可能通用,然后使用回调并在控制器中处理业务细节。 还是应该将整个模型传递给视图,然后让视图直接更新模型。这意味着将要键入的代码更少。 PS。不要判断代码-只是为了可视化。 编辑: 另外要补充 -此应用程序将使用支持鸭型的python编写。这意味着使用第二种方法,只要模型满足所需的接口,视图仍然可以重用。
10 model  view 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.