只需在接口中实现一些属性

本文关键字:属性 实现 接口 | 更新日期: 2023-09-27 18:12:22

我有一个带有一些属性的接口:

public interface Test
{
    string GetName();
    string GetLastName();
    string GetFullName();
}

和我有一个a和B类实现接口Test。但是在类A中,我只想实现GetName()和GetLastName()方法。类B只实现GetFullName()。我能做吗?因为我想为每个特定的类实现我所需要的

只需在接口中实现一些属性

您不能跳过实现接口的某些成员。如果类实现了接口,那么你应该提供完整的实现。

但如果某些客户端不需要接口的所有属性,则将该接口拆分为更小的接口。这就是所谓的界面隔离原则。

public interface TestA
{
    string GetName();
    string GetLastName();
}
public interface TestB
{
    string GetFullName();
}
public interface Test : TestA, TestB
{        
}

通过A类实现TestA接口,通过b类实现TestB接口。如果没有类需要完整的Test接口,则删除它。

将两个接口拆分为另外两个接口。然后classA实现一个接口,classB实现第二个接口。这就是所谓的界面隔离原则,根据该原则:

不应该强迫客户端依赖于它不使用的方法

有关此原理的更多信息,请查看此处。

By the way是SOLID的五大原则之一