只需在界面中实现一些属性

时间:2014-07-11 08:32:33

标签: c#

我有一个带有一些属性的界面:

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

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

2 个答案:

答案 0 :(得分:1)

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

但是如果某个客户端不需要接口的所有属性,则将此接口拆分为较小的接口。这称为接口隔离原则。

public interface TestA
{
    string GetName();
    string GetLastName();
}

public interface TestB
{
    string GetFullName();
}

public interface Test : TestA, TestB
{        
}

按类A实现TestA接口,按类B实现TestB。如果没有类需要完整接口Test,则只需删除它。

答案 1 :(得分:0)

您有两个将接口拆分为另外两个接口。然后classA将实现一个接口,classB实现第二个接口。这就是所谓的 Interface Segregation Prinicple ,根据其中:

  

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

有关此原则的更多信息,请查看here

顺便说一句是SOLID

中的五项原则之一