我結束了類似下面的代碼在我正在處理的項目中的代碼。我認爲我被允許這樣做真的很奇怪,但是現在我開始想知道我最喜歡的一個建築大師是什麼讓我這麼做的。使用界面組合怪誕怪異的界面多態性
我的問題,你是:
- 到底是該叫什麼?
- 這有什麼真實世界的用途?
- 爲什麼有人想要這樣做?
這裏是我的接口:
namespace ThisAndThat
{
public interface ICanDoThis
{
string Do();
}
public interface ICanDoThat
{
string Do();
}
public interface ICanDoThisAndThat : ICanDoThis, ICanDoThat
{
new string Do();
}
}
這裏是我的具體類:
namespace ThisAndThat
{
public class CanDoThisAndThat : ICanDoThisAndThat
{
public string Do()
{
return "I Can Do This And That!";
}
string ICanDoThis.Do()
{
return "I Can Do This!";
}
string ICanDoThat.Do()
{
return "I Can Do That!";
}
}
}
與我擦肩而過的測試:
using Xunit;
namespace ThisAndThat.Tests
{
public class ThisAndThatTests
{
[Fact]
public void I_Can_Do_This_And_That()
{
ICanDoThisAndThat sut = new CanDoThisAndThat();
Assert.Equal("I Can Do This And That!", sut.Do());
}
[Fact]
public void I_Can_Do_This()
{
ICanDoThis sut = new CanDoThisAndThat();
Assert.Equal("I Can Do This!", sut.Do());
}
[Fact]
public void I_Can_Do_That()
{
ICanDoThat sut = new CanDoThisAndThat();
Assert.Equal("I Can Do That!", sut.Do());
}
}
}
謝謝,給你答案,因爲你提供了正確的名稱。 – 2009-02-14 20:01:50