私は次のものを持っています:
internal class Person {
}
internal interface IGetPerson {
Person GetPerson();
}
public class Cat: IGetPerson {
private Person _Person = new Person();
Person IGetPerson.GetPerson() {
return _Person;
}
internal Person GetPerson() { // dry violation -- necessary?
return _Person; // or return (this as IGetPerson).GetPerson();
}
}
「as」キャストなしでコンパイルするには、次のものを取得する必要があるようです。
internal class SomeClass {
public static Person GetPerson(Cat someCat) {
return someCat.GetPerson();
}
}
要するに、私が何かを見逃していない限り、内部インターフェースを採用すると必然的にこの種の DRY 違反につながるということです。もう 1 つの方法は、Person クラスを public にすることです。
何か不足していますか?