标签: mvp

GWT MVP历史回归

我有一个MVP应用程序实现.后退按钮工作正常.我想以编程方式返回上一个地方.我该怎么办?

我正在寻找类似的东西:

clientFactory.getPlaceController().goBack();
Run Code Online (Sandbox Code Playgroud)

谢谢.

java mvp gwt gwt-mvp gwt-history

2
推荐指数
1
解决办法
1612
查看次数

MVP,应该在哪里创建类?

我有一些MVP模式的问题,特别是在哪里创建我所有类的实例.目前这些都是在program.cs文件中创建的.虽然这有效,但我知道这是糟糕的设计.我很感激,如果有人能给我一些关于如何构建它的指示.

internal static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    private static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        var browser = new BrowserWindow();
        var helper = new MainPresenterHelper();
        var userInterface = new MainForm();
        var entity = new UserInputEntity();

        var readerWriter = new ReaderWriter();
        var manager = new IOManager(readerWriter);
        var verif = new VerificationManager(manager);
        var entityVerification = new EntityVerification(verif);

        var logger = new Logger(entity, readerWriter, true);
        var verifyRow = new VerifyRow(entity, logger);
        var …
Run Code Online (Sandbox Code Playgroud)

c# mvp winforms c#-4.0

2
推荐指数
1
解决办法
792
查看次数

注册具有视图的演示者

如果我有这样的主持人——

public class LandingPresenter : ILandingPresenter
{            
    private ILandingView _view { get; set; }
    private IProductService _productService { get; set; }

    public LandingPresenter(ILandingView view, IProductService)
    {
        ....
    }
}
Run Code Online (Sandbox Code Playgroud)

考虑到依赖视图不会被注册,我如何向 Autofac 注册这个 Presenter(但 IProductService 会)

    builder.RegisterType<LandingPresenter>().As<ILandingPresenter>(); ????
Run Code Online (Sandbox Code Playgroud)

c# mvp autofac

2
推荐指数
1
解决办法
830
查看次数

在多线程事件,MVP,Winforms上更新来自演示者的视图

处理多线程时,Presenter通常会收到事件并调用View来更新相应的控件.

主持人:

private void EventAggregator_InfoUpdated(object sender, InfoUpdatedEventArgs e)
{
    view.UpdateFeedInfo(e.FeedInfo);
}
Run Code Online (Sandbox Code Playgroud)

视图:

public void UpdateFeedInfo(FeedInfo feedInfo)
{
    if (!control.IsHandleCreated && !control.IsDisposed) return;

    control.BeginInvoke((MethodInvoker) (() => control.Update(feedInfo)));
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如何在调用view之前在GUI线程中调用presenter中的方法调用.就像是:

private void EventAggregator_InfoUpdated(object sender, InfoUpdatedEventArgs e)
{
    //InvokeInUiThread// ManageInfoInput(e.FeedInfo);
}

private void ManageInfoInput(FeedInfo feedInfo)
{
    ...
    view.UpdateFeedInfo(e.FeedInfo);
}
Run Code Online (Sandbox Code Playgroud)

.net c# mvp winforms

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

MVP致电表格

我尝试在WinForms应用程序中实现ModelViewPresenter(MVP)模式.我有一个带按钮的主窗体,当我点击这个按钮时,会显示一个新窗体.遵循MVP模式的最佳方法是什么?我想,我应该从我的演示者中打开第二个表单,以便视图对其他视图一无所知.但我不确定.我的应用程序只有三个对话框.什么是最好的方法?

        private void LoadAndShowMasterTrackForm()
    {
        if (GvClaims.SelectedRowsCount < 1)
            return;

        // Create an empty list.
        var rowsToUpdate = new List<TrackData>();
        // Add the selected rows to the list.
        for (int i = 0; i < GvClaims.SelectedRowsCount; i++)
        {
            if (GvClaims.GetSelectedRows()[i] >= 0)
            {
                var track = GvClaims.GetRow(GvClaims.GetSelectedRows()[i]) as TrackData;
                if (track != null)
                    rowsToUpdate.Add(track);
            }
        }
        using (var uow = new UnitOfWork())
        {
            try
            {
                GvClaims.BeginUpdate();
                var frmSynonyms = new MasterTrackDialog { DataSourceMainGridView = rowsToUpdate, DataSource = rowsToUpdate, SessionUow …
Run Code Online (Sandbox Code Playgroud)

c# mvp winforms

2
推荐指数
1
解决办法
1134
查看次数

MVP是设计模式还是建筑模式?MvC和MvvM怎么样?

在对android模式进行一些研究后,我不断找到不同的答案.有些人会开始讨论设计模式,建筑甚至建筑表现模式.

我得出的结论是,它们都是架构演示模式,但MvC是一种架构模式,而MvP和MvvM是与设计模式观察者相同等级的设计模式.这是对的吗?

model-view-controller mvp design-patterns mvvm

2
推荐指数
1
解决办法
449
查看次数

MVP 和 MVVM 之间的区别

我读了很多关于 MVC、MVP 和 MVVM 的文章。大多数文章都以同样的方式提到 MVP 和 MVVM。但只有部分内容提到MVVM的核心部分是绑定。WPF 就是一个很好的例子。

除了绑定之外,MVP 和 MVVM 之间还有什么区别吗?

wpf mvp design-patterns mvvm

2
推荐指数
1
解决办法
4191
查看次数

Swift 如何创建像 UIViewController 这样的通用 MVP

我想删除重复的代码,所以我想创建一个简单的 MVP 基础视图控制器,它将模型、视图和演示者类型联系在一起并自动连接它们,例如:

class BaseMvpViewController<M: MvpModel, V: MvpView, P: MvpPresenter>: UIViewController {
Run Code Online (Sandbox Code Playgroud)

我的模型和视图是空协议的地方:

protocol MvpModel {}
protocol MvpView: class {} // class is needed for weak property
Run Code Online (Sandbox Code Playgroud)

主持人看起来像这样:

protocol MvpPresenter {
    associatedtype View: MvpView
    weak var view: View? { get set }
    func onAttach(view: View)
    func onDetach(view: View)
}
Run Code Online (Sandbox Code Playgroud)

这是我的全部BaseMvpViewController

class BaseMvpViewController<M: MvpModel, V, P: MvpPresenter>: UIViewController, MvpView {
    typealias View = V
    var model: M? = nil
    var presenter: P!

    required public init?(coder aDecoder: NSCoder) {
        super.init(coder: …
Run Code Online (Sandbox Code Playgroud)

generics mvp ios swift

2
推荐指数
1
解决办法
2789
查看次数

如何在 android (MVP) 上测试演示者?

我以前从未创建过单元测试。我计划为我的演示者和数据源创建 UI 测试和单元测试。我在我的应用程序中使用 Retrofit、RxJava 和 Dagger。

这是我迄今为止尝试过的

数据源(我的数据源来自 API)

public class DataSource implements DataSourceContract {

    private static DataSource dataSource;

    @Inject
    SharedPreferences sharedPreferences;
    @Inject
    NewsService newsService;

    private DataSource(Context context) {
        DaggerAppComponent.builder()
                .networkModule(new NetworkModule(API_URL))
                .appModule(new AppModule(context.getApplicationContext()))
                .preferencesModule(new PreferencesModule())
                .build()
                .inject(this);
    }

    public static synchronized DataSource getInstance(Context context) {
        if(dataSource == null) {
            dataSource = new DataSource(context);
        }

        return dataSource;
    }

    public String parseError(Throwable e) {
        if(e instanceof SocketTimeoutException) {
            return ERROR_TIMEOUT;
        }
        else if(e instanceof SocketException) {
            return ERROR_NO_CONNECTION;
        }
        else { …
Run Code Online (Sandbox Code Playgroud)

testing mvp android

2
推荐指数
1
解决办法
3997
查看次数

使用 MVP 的 VBA 设置对话框 - 我需要模型吗?

我一直在阅读 MVP(模型-视图-呈现器)及其变体(被动视图、监督视图)的许多示例,以尝试使我的解决方案在 VBA 中更加健壮(并且可重用)(在本例中使用 Excel 作为主机)实例)。我发现的问题是在 VBA 中找到好的、简单的示例,但对于我需要的(希望如此)简单的示例来说,这些示例并不是完全多余的。

我正在尝试创建一个“设置”对话框,将某些配置存储在工作表中(这是我的“存储库”)。

这是我的主要过程,由用户触发:

Private Sub ShowImportSelector()
    Dim importPresenter As DataImportPresenter
    Set importPresenter = New DataImportPresenter

    importPresenter.LoadConfig
    If importPresenter.Show = -1 Then Exit Sub
    importPresenter.SaveConfig

    ' begin processing...
    If (CStr([Settings.SelectedVersion].Value2) = "QQ") Then
       ' ...
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

这是我的“演示者”(这里我使用源范围名称和配置目标):

Option Explicit

Private m_importForm As FImport

Private Sub Class_Initialize()
    Set m_importForm = New FImport
End Sub

Public Sub LoadConfig()
    m_importForm.SetAvailableVersions "tblVERSION"
    m_importForm.SetAvailableSalesOrgs "tblSALESORG"
    m_importForm.SetAvailableCategories "tblCATEGORY"
    m_importForm.ToolName = "Forecast"
End Sub

Public Sub …
Run Code Online (Sandbox Code Playgroud)

mvp vba

2
推荐指数
1
解决办法
383
查看次数