Questions tagged «mvp»

2
与MVC相比,MVP有哪些改进?
我已经阅读了三天的有关Model-View-Controller(MVC)和Model-View-Presenter(MVP)模式的信息。有一个问题令我非常困扰。当已经有MVC时,为什么软件设计者会发明MVP? 他们遇到了什么问题,MVC无法解决(或解决得很差),但是MVP可以解决?MVP打算解决哪些问题? 我已经阅读了很多有关MVP的历史和解释,或者关于MVC和MVP之间差异的文章,但是没有一个对我的问题有明确的答案。 在我读过的一篇文章中,有人说: 现在进入Model View Presenter,这是对MVC模式应用于现代基于组件的图形用户界面时的不足之处的回应。在现代GUI系统中,GUI组件本身而不是某些中央控制器来处理诸如鼠标移动和点击之类的用户输入。 因此,我听不懂,但实际上可以以另一种方式使用,例如GUI组件不能自行处理用户输入吗?“单独处理”到底是什么意思?

3
Model-View-Presenter(MVP)方案对Android有用吗?
如何将Android中的View和Presenter分开,同时将对用户操作(MVP的Presenter部分)的反应设置为与显示GUI元素(MVP的View部分)相同的活动。 “在模型视图演示者中,就像Martin Fowler或Michael Feathers [2]所说的那样,UI的逻辑被分为一个称为presenter的类,该类处理来自用户的所有输入,并告诉“哑”视图何时何地。显示”(从此处引用)。 直到现在,我还认为Android的主要功能之一是智能的 Activity,它可以执行操作,对操作做出反应并显示结果。MVP方案与Android理念矛盾吗?尝试在Android上实现它是否有意义?如果是,该怎么办?
34 android  mvp 

3
干净的体系结构-用例类太多
我将进入Clean Architecture,将Android的级别从MVC提升到MVP,使用Dagger 2引入DI,使用RxJava 2引入反应性,当然还使用Java 8。 在MVP干净架构中,实体(在数据存储区中)与应访问它们的演示者之间存在一层。该层是“用例”。用例最好是一个接口,它对一个实体执行一个操作。 我还知道,Clear Architecture 是“尖叫中的 ”,就其项目而言,由于它们中的类很多,因此其可读性很高。 现在,在我的项目中,我有大约6个不同的实体,当然,每个实体存储库都有至少4种方法(通常是get,add,delete,update)来访问它们。. 因此,6 * 4 = 24。 如果我到目前为止对Clean Architecture的了解,我将有24个UseCase。 如果与MVC中的6个控制器相比,这是很多类。 我真的需要制作24个用例吗? 我真的很感谢有人成功使用它所做的澄清。 谢谢,杰克
15 java  android  use-case  mvp 

4
正确的Model-View -_____设计
我一直在阅读有关Model View Controller,Model View Presenter,Model View ViewModel等的内容,通常,基本概念似乎很容易理解:将漂亮的视觉效果和科学胆量保持彼此独立和无知,例如可能。设计巧克力中没有添加逻辑花生酱;酷,我喜欢。 问题是我对于第三部分还是有点模糊,不是模型或视图。每个人似乎都有自己的主意,如何称呼它,应该做什么,什么是正确的,什么是明显的错误……而且我很想弄清楚什么时候Presenter成为ViewModel,什么时候应该让View成为现实。不要这样做,因为那是主持人的工作,并且- 我在乱逛 而不是请别人解释它们之间的区别-因为已经一次又一次地做到了(我知道;我读了不计其数的文章)-我很好奇听到我自己拼凑的模型很少有程序员。 就是说,您会将此设计归类为什么?也许更重要的是,您是否对此有明显的印象?当然,如果这确实是可靠的设计,我很想听到我做的很好,但是我宁愿得到可靠的建议而不是赞美。 注意:我将使用“桥梁”作为Model-View-?的神秘第三部分。避免对其“应该”有任何潜意识的建议。 模型 是对数据的授权。 从网桥接收有关请求的更改的信息。 包含并执行关于数据如何与其他数据相关的所有逻辑。 数据更改时通知网桥(对于网桥表示感兴趣的数据)。文字编辑:允许外部订户(对其一无所知)监视其状态或计算结果。 对视图的知识为零。 视图 与为用户提供查看和操纵数据的方式有关。 从网桥接收有关数据更新的信息。 包含并执行有关如何向用户呈现数据和控件的所有逻辑。 当用户执行了(可能)影响模型的操作时,通知Bridge。 通知Bridge感兴趣的信息。 对模型的知识为零。 桥 是模型和视图之间的协调者和翻译者。 对在模型和视图之间传递的信息进行适当的格式更改。 保留有关“谁需要知道什么”的信息。 具有模型和视图的知识。 补充说明 在更复杂的程序中,通常会有多个模型。在这种情况下,网桥通常承担在多个模型之间进行协调/转换的工作,因此成为应将原型/ API /设计模型构建到哪个模型的权限。(例如,如果构建纸牌游戏程序,并且您要构建备用的甲板改组模型,则应使用Bridge来确定与Bridge正确通信所需的功能。) 在只有一个视图和模型的小型简单程序中,网桥通常会“假定”任一侧都有哪些功能。但是,随着程序变得越来越复杂,建议视图和模型向Bridge报告其功能,这样可以避免效率低下和错误的假设。 我认为这几乎涵盖了它。无论如何,我欢迎您对我倾向于使用的设计有任何疑问,并且我也鼓励您提出任何建议。 和往常一样,感谢您的宝贵时间。

1
MVP和干净架构之间有什么区别
这个问题是不言而喻的,只是增加了我的想法: 据我所读,Clean arch中的表示层与MVP中的MV具有相同的职责。 一个人如何决定选择一种模式而不是另一种?
13 architecture  mvp 

1
模式不是构建块–因此,我不应该在MVC / MVP模式上构建应用程序吗?
我读过这个页面设计模式,并编写代码时,你应该如何对待他们。据我了解,链接标题如下: 模式不是构件。 如果我理解正确,这意味着在有意义之前不要使用设计模式,对吗?不要一开始就说要使用策略模式,请等到编写一些代码为止,如果使用策略模式对您的设计有意义,那么就使用它。 创建GUI应用程序时,是否以相同方式对待MCV / MVP模式?从各自的链接,它说这是一种建筑模式。 假设如果我创建一个GUI应用程序并且不使用MCV / MVP模式,但是我的代码是干净,可读且可维护的,那么我是否仍未使用MCV / MVP模式仍然是代码异味/不良设计? ?

1
在MVP模式中,View应该基于UI内容实例化Model对象,还是仅将这些内容作为参数传递给Presenter?
我正在开发的Android应用程序中使用MVP模式。 我基本上有4个元素: 可以在其中添加新用户的AddUserView: AddUserPresenter UserInfo(pojo) UserInfoManager(业务逻辑和存储管理器) 我的问题是: 当我在AddUserView中按下“添加”按钮时,它应该获取文本视图的内容,实例化一个新的UserInfo并将其传递给Presenter。还是AddUserView应该只获取textViews内容并将其传递给AddUserPresenter,而后者实际上将实例化UserInfo并将其传递给UserInfoManager?
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.