标签: mvp

编程模式:MVC与MVP

我对这两个编程模式有点困惑:MVC和MVP.

它们之间的主要区别是什么?我一直在网上搜索,我做了两个例子,但是我更加困惑,因为在一些示例网页中,MVP使用2个以上的界面来将展示者与视图层进行通信(有些是甚至有完全空白的接口,只有声明),但在其他接口只需要两个接口就可以将数据从演示者传输到视图.应用该模式的正确方法是什么?

另一方面,我一直在研究MVC,但直到现在,我才意识到,也许我一直在以错误的方式应用模式.我有这个:

  • 模型:C#类,其行为类似于业务对象.
  • Controller:C#类,它使用模型对象来填充或操纵它们.
  • 查看:C#aspx页面显示模型对象; 控制器负责在操纵和/或填充数据后将模型对象发送到该层.

我希望你能清除我的怀疑.提前致谢.

model-view-controller mvp

7
推荐指数
1
解决办法
4140
查看次数

评论我对Android的MVP模式

我计划在我的新Android项目中使用MVP模式.我已经做了一些示例代码,我想知道,我是否正确实现了它?请对代码发表评论并发布您的建议.

我的活动类我从我的BaseView类扩展它,我正在实现一个接口.此活动只是在新线程中调用Web服务并更新textview中的值.

public class CougarTestView extends BaseView implements ICougarView,
        OnClickListener {
    CougarTestPresenter _presenter;
    public String activityName = "CougarHome";

    /** Called when the activity is first created. */`enter code here`
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState, activityName);
        setContentView(R.layout.main);
        _presenter = new CougarTestPresenter(this);
        getSubmitBtn().setOnClickListener(this);
        getCallInfoBtn().setOnClickListener(this);

    }

    private Button getCallInfoBtn() {
        return (Button) findViewById(R.id.btn_callinfo);
    }

    public void setServiceValue(String retVal) {
        // TODO Auto-generated method stub
        getResultLabel().setText(retVal);
        setPbar(false);
        // toastMsg(retVal);
    }

    public void ResetPbar() {
        getProgressBtn().setProgress(0);
    }

    public void setProcessProgress(int progress) {

        if …
Run Code Online (Sandbox Code Playgroud)

mvp android

7
推荐指数
1
解决办法
4759
查看次数

Winforms中的MVP

我主要来自ASP.Net背景和一些MVC.我还做了一点Silverlight和MVVM,但是我现在要进入Winforms,我很少有经验,所以我想知道如何解决MVP问题.

典型的MVP示例显示了演示者设置视图属性(通过某种IView接口),具体视图将该属性值放入文本框中.而不是这种古老的方法,可以在MVP中使用INotifyPropertyChanged,如果是,如何?一个非常快速的例子非常有用!

如果我要创建一个实现INotifyPropertyChanged的模型,那么这不是更像MVVM吗?(即演示者更新模型,并通过INotifyPropertyChanged的魔力更新视图).然而,在我读过有关MVVM和Winforms的各个地方,人们都认为它不合适.为什么?我的理解是你可以对任何控件的属性进行数据绑定,那么Winforms缺少什么?我试图理解Winforms中数据绑定与WPF相比的缺点,以及为什么不能使用MVVM,因为它似乎比MVP更容易实现.

在此先感谢安迪.

data-binding mvp winforms

7
推荐指数
1
解决办法
3620
查看次数

MVP winforms中的数据绑定

我有一个在MVP中实现的WinForms应用程序.我的表单有一个TextBox,我想将其Text属性数据绑定到Model中的属性.我不想在视图中引用模型.

在谷歌搜索后,我发现通过耦合模型和视图进行数据绑定是一个坏主意.我的样品初始化Model,View并且Presenter是如下.

class View : Form, IView
{
    public View()
    {
        InitializeComponent();
        new Presenter(this);
    }
}

class Presenter
{
    public Presenter(IView) : this.Presenter(this, new Model())
    {
    }

    public Presenter(IView view)
    {
    }
}

class Model : IModel
{
    public Model()
    {
    }

}
Run Code Online (Sandbox Code Playgroud)

目前我已经为每3个项目Model,ViewPresenter.View参考PresenterPresenter参考Model.任何人都可以指导我如何形成数据绑定到控件View到属性Model

编辑

我知道在Grid中做的事情.我们可以在演示者中将Datasource网格的属性分配给List(或类似的),如:

_view.DataSource = _model.ListOfEmployees;
Run Code Online (Sandbox Code Playgroud)

这将反映 …

c# data-binding mvp winforms

7
推荐指数
2
解决办法
7168
查看次数

Android MVP - 活动应该是视图还是演示者?

我想用MVP模式实现我的下一个应用程序,所以我开始阅读一些关于如何实现它的文章.对我来说,主要的问题是这种模式有不同的方法.有些人说我们应该将活动视为一种观点,而另一些人则认为活动应该是一种主持人.

此处描述了作为视图的活动:MVP Android ,它是有道理的.但另一方面,我发现这个答案有几个upvotes /sf/answers/532696041/,有人说活动应该是主持人.

有没有人有这种模式的经验?

mvp android design-patterns

7
推荐指数
3
解决办法
8115
查看次数

适配器作为演示者?或者与演示者交谈?Android和MVP

我正在尝试遵循MVP模式.但是,我对如何在这种模式下处理适配器和视图持有者有一些疑问.

我应该使用适配器作为演示者吗?有业务逻辑吗?

或者我应该传递处理列表逻辑的演示者实例,然后在与适配器元素进行任何交互时调用演示者的方法?

谢谢

mvp android

7
推荐指数
1
解决办法
1771
查看次数

基于MVP架构的Android应用程序中AlertDialog的位置

任何人都可以告诉我,根据MVP架构,我应该在我的应用程序中放置AlertDialogs?我应该将它们留在我的活动中还是放到演示者手中?

mvp android android-alertdialog

7
推荐指数
1
解决办法
3759
查看次数

具有MVP设计模式的Google Analytics

哪个更好,将谷歌分析代码放在演示者中或将其保留在活动中?

mvp android google-analytics

7
推荐指数
1
解决办法
681
查看次数

Android MVP:哪个图层应该存储上下文变量

当用户点击视图上的按钮时,我发现自己需要播放声音文件.

MediaPlayer需要创建上下文.

放置MediaPlayer初始化代码的最佳方法是什么?

我应该将上下文传递给演示者方法并在那里播放吗?

或者只是在视图上播放是可以的.

mvp android

7
推荐指数
2
解决办法
4448
查看次数

为什么 MVC 中的单元测试比 MVP 和 MVVM 更难

我一直在研究 MVC/MPV/MVVM 的优缺点,一个共同的主题是 MVC 比 MVP 和 MVVM 更难进行单元测试,但我不完全理解为什么。

根据我目前的理解,在 MVC 中,视图依赖于模型和控制器,因此要测试视图,必须模拟控制器和模型。MVP/MVVM 如何改进?

model-view-controller mvp android mvvm android-mvvm

7
推荐指数
2
解决办法
658
查看次数