接口在Prism实现中的重要性

时间:2016-12-14 07:06:57

标签: c# wpf mvvm prism

是否有必要在模块级实现接口并在prism应用程序中使用viewmodel?

我没有看到任何可用于多个类的界面。

1 个答案:

答案 0 :(得分:0)

不,在棱镜中查看模型不需要实现任何接口。如果您没有任何从逻辑方而不是从视图更改的数据,则甚至不是INotifyPropertyChanged

在旧版本中,{em>视图必须实现IView才能使用ViewModelLocator,但不再存在。

模块定义需要实现IModule

评论后编辑:

如果您希望能够在生产或测试中将其替换为另一个类,则需要为单个类创建一个接口。

话虽如此,通常情况下,您不会为类创建接口,反之亦然。接口首先指定消费者想要对实现做什么,然后一个或多个类为每个接口提供一个或多个接口的实现。

示例:

鉴于课程

internal class InventoryManager
{
    public IEnumerable<string> ListItems() { ... }

    public void AddItem( string item ) { ... }

    public void RemoveItem( string item ) { ... }
}

您不创建此界面:

public interface IInventoryManager
{
    IEnumerable<string> ListItems();

    void AddItem( string item );

    void RemoveItem( string item );
}

而是这两个:

public interface IItemList
{
    IEnumerable<string> ListItems();
}

public interface IItemStorage
{
    void AddItem( string item );

    void RemoveItem( string item );
}

因为您的界面的消费者可能想要查看清单中的内容或更改它。并且您希望选项以不同于可写入库存的方式实现只读库存。