繁体   English   中英

视图,演示者和界面之间的依赖关系

[英]dependencies between view, presenter and interface

我遇到了经典的循环依赖问题,但是我发现的解决方案(创建第三个程序集)似乎不适用于我的视图呈现器模式。

我需要在我的视图程序集中引用我的演示者我需要在我的视图程序集中引用我的界面(与演示者在同一程序集中)

好的,因为它们都在同一位置,所以我在视图中引用了presenter / interface组件。

现在问题来了:我需要在presenter / interfaces程序集中引用我的视图,以便能够使用我的视图类型之一(非系统类型,自定义控件)在我的界面中定义属性和访问器。 我不能因为循环依赖,而且我认为即使我在第三个程序集中移动界面,在这个新程序集和视图之间也总会有一张CD(因为我的视图需要我的界面,而接口需要我的界面视图)

目标是在我的界面中设置一个属性和访问器,以便能够从我的演示者访问我视图中的控件,因此我需要引用才能在界面中使用控件类型。

要弄清楚并不容易,所以随时问我更多,

在此先感谢大家。

最好的祝福。

通常,接口应该独立存在。 当需要隔离实现时(例如,在视图和演示者之间的引用中),请使用一个接口。 因此,如果有必要让他们俩彼此了解,而不仅仅是彼此之间的了解,那么您应该具有演示者界面和查看界面。

例:

Interface.dll:

public interface IMyView { string title; }
public interface IMyPresenter { string GetTitle(); }

View.dll:

public MyView : IMyView
{
    private IMyPresenter _myPresenter;
    public string Title { get { return _myPresenter.GetTitle(); } }
}

Presenter.dll:

public MyPresenter : IMyPresenter
{
    private IMyView _myView;

    public string GetTitle()
    {
        return ResourceManager["titleResource"];
    }
}

尽管以我对模型视图演示者的理解,该视图不仅公开了演示者需要的所有内容,而且该视图也不了解演示者,而是将IView交给演示者,并将其自身绑定到所有需要的视图上?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM