İş arkadaşlarım bana alıcılarda ve ayarlayıcılarda mümkün olduğunca az mantık olması gerektiğini söyledi.
Bununla birlikte, kullanıcıları / programcıları uygulama detaylarından korumak için alıcılar ve ayarlayıcılarda birçok şeyin gizlenebileceğine inanıyorum.
Yaptıklarımın bir örneği:
public List<Stuff> getStuff()
{
if (stuff == null || cacheInvalid())
{
stuff = getStuffFromDatabase();
}
return stuff;
}
İşin bana bir şeyler yapmamı söylediğinin bir örneği (Bob Amca'dan 'Temiz Kod' diyorlar):
public List<Stuff> getStuff()
{
return stuff;
}
public void loadStuff()
{
stuff = getStuffFromDatabase();
}
Bir ayarlayıcı / alıcıda ne kadar mantık uygundur? Veri saklamanın ihlali dışında boş alıcı ve ayarlayıcıların kullanımı nedir?
public List<Stuff> getStuff() { return stuff; }
StuffGetter
arayüz yapın, StuffComputer
hesaplamaları yapın ve cache'ye StuffCacher
erişmekten veya çağrıları sarmalanmasına yönlendirmekten sorumlu olan bir nesnenin içine sarın StuffComputer
.