Bence , belirli bir göreve izin vermek için bir sınıfta kısaca kullanılan sınıflar için dahili olarak tanımlanmış sınıfları kullanmak adil bir polistir .
Örneğin, ilgisiz iki sınıftan oluşan bir veri listesini bağlamanız gerekiyorsa:
public class UiLayer
{
public BindLists(List<A> as, List<B> bs)
{
var list = as.ZipWith(bs, (x, y) => new LayerListItem { AnA = x, AB = y});
// do stuff with your new list.
}
private class LayerListItem
{
public A AnA;
public B AB;
}
}
Dahili sınıfınız başka bir sınıf tarafından kullanılıyorsa, ayrı bir sınıf koymalısınız. Dahili sınıfınız herhangi bir mantık içeriyorsa, onu ayırmanız gerekir.
Temel olarak, veri nesnelerinize delik takmak için harika olduklarını düşünüyorum, ancak gerçekten mantık içermeleri gerekiyorsa bakımı zordur, çünkü değiştirmeniz gerektiğinde onları nerede arayacağınızı bilmeniz gerekir.