Bu yüzden, bunun iyi mi yoksa kötü kod tasarımı mı olduğunu bilmiyorum, bu yüzden sormam daha iyi olur.
Sık sık, sınıfları içeren veri işleme yöntemlerini oluşturuyorum ve elimden önce boş referanslar veya başka hatalar alamadığımdan emin olmak için çoğu zaman yöntemler üzerinde birçok kontrol yapıyorum.
Çok basit bir örnek için:
// fields and properties
private Entity _someEntity;
public Entity SomeEntity => _someEntity;
public void AssignEntity(Entity entity){
_someEntity = entity;
}
public void SetName(string name)
{
if (_someEntity == null) return; //check to avoid null ref
_someEntity.Name = name;
label.SetText(_someEntity.Name);
}
Gördüğünüz gibi her seferinde null kontrol ediyorum. Fakat yöntem bu çeke sahip olmamalı mı?
Örneğin, harici kod verileri elden önce temizlemeli, böylece yöntemlerin aşağıdaki gibi doğrulaması gerekmez:
if(entity != null) // this makes the null checks redundant in the methods
{
Manager.AssignEntity(entity);
Manager.SetName("Test");
}
Özetle, yöntemler "verilerin doğrulanması" olmalı ve daha sonra veriler üzerinde işlem yapmalı mı, yoksa yöntemi çağırmadan önce güvence altına alınmalı mı ve yöntemi çağırmadan önce doğrulamakta başarısız olursanız bir hata atması gerekir (veya hata)?