私が取り組んでいるプロジェクトで、次のコードのようなものになりました。私はそれを許されたことは本当に奇妙だと思いましたが、今では、私の側の建築上の失敗が私をこれに導いた可能性が最も高いのだろうかと考え始めています.
あなたへの私の質問は次のとおりです。
- これは正確には何と呼ばれていますか?
- これは実際にどのような用途に使用されていますか?
- なぜ誰もがこれをやりたいのですか?
ここに私のインターフェースがあります:
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());
}
}
}