Aşağıdaki kod düzeni okuma forumlarını ve diğer blog yayınlarını gördüm ve birkaç soru sormak için uyarlandım.C# Özet Sınıf bir Arayüz uygulayarak
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);
}
Anlamadığım şey, arabirimi uygulayan özet sınıfının yararıdır. Bana göre sadece biraz tekrarlayıcı geliyor ve arayüzü uygulayan soyut bir sınıfa sahip olma avantajını anlayamıyorum.
- Özet sınıf teması
ServiceBase<T>
yalnızca IService arabirimini devralmaya gerek duymadan tanımlamıyor mu? Bu, kodu ikiye katlıyor mu? - Neden
SomeBaseClass
,ICarService
'u da reddetmelidir? ServiceBase yeterli olmamalı mı?
bir şey SomeBaseClass oldu neden hep 'düşünülmüştü saklanmasında eğer yeni bir anahtar kelime üyesi Y. Kullanımı miras gizler X' diyor yöntemleri bir uyarı olsun sanırım. Soyut sınıfın 'Ekle' olması nedeniyle, servis arayüzünde 'Ekle' vardır, ne yapacağını bilmez. – fes
Son cümlede kimlerden "o" ile kastediyorsunuz? Derleyici uyarısı kesinlikle burada ... –