私は次のコードレイアウトの読書フォーラムや他のブログ投稿を見て、いくつかの質問をするために適応しました。
public interface IService<T>
{
int Add(T entity);
void Update(T entity);
}
public abstract class ServiceBase<T> : IService<T>
{
public int Add(T entity) { ... }
public void Update(T entity) { ... }
}
public interface ICarService : IService<Car>
{
}
public class SomeBaseClass : ServiceBase<Car>, ICarService
{
public int Add(Car entity);
public void Update(Car entity);
}
私が理解していないのは、抽象クラスがインターフェースを実装することの利点です。私にはそれが少し繰り返し感じられ、抽象クラスがインターフェースを実装することの利点を理解できません。
ServiceBase<T>
IServiceインターフェースを継承せずに、抽象クラスをそのまま定義しないのはなぜですか?これはコードを2倍にしますか?- なぜ
SomeBaseClass
また実装する必要がありICarService
ますか?ServiceBaseで十分ではありませんか?