是否有必要在模块级实现接口并在prism应用程序中使用viewmodel?
我没有看到任何可用于多个类的界面。
答案 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 );
}
因为您的界面的消费者可能想要查看清单中的内容或更改它。并且您希望选项以不同于可写入库存的方式实现只读库存。