扩展现有的界面设计

本文关键字:界面设计 扩展 | 更新日期: 2023-09-27 18:10:04

我有几个类实现了一些接口,而不是修改它,我想用另一个接口扩展它。

当我考虑设计扩展接口时,我不确定如何包含对原始接口的引用的最佳实践是什么?

是否引用或包含它作为扩展接口的属性?

我在下面创建了一个例子来说明这种需要:

public interface IMovie
{
    string UniqueId { get; set; }
    string Name { get; set; }
    string Ratnig { get; set; }
}
//Option #1
public interface IMovieWithSubTitles
{
    string UniqueId { get; set; }
    string SubTitles { get; set; }
}
//Option #2
public interface IMovieWithSubTitles
{
    IMovie Movie { get; set; }
    string SubTitles { get; set; }
}

扩展现有的界面设计

第三个选项(继承):

interface IMovieWithSubTitles : IMovie 
{
     string SubTitles { get; set; }
}

第一个只是声明了一个单独的接口。第二个聚合 IMovie不扩展 IMovie

我将继承IMovie与新的接口,如

public interface IMovieWithSubTitles : IMovie 
{
    string SubTitles { get; set; }
}