Hej, podczas realizacji jednego z zadań na uczelnię, natrafiłem na problem, który na swój sposób potrafię rozwiązaćnatomiast mam wrażenie że jest to rozwiązanie łamiące zasady hermetyzacji itd.
Mianowicie mam klasę o nazwie DataRepository, która ma sobie jakieś metody oraz mam mieć zaimplementowaną w niej klasęjak wewnętrzną DataContext przechowującą kontenery z danymi. W klasie DataRepository mam wykonywać działania na kontenerach z DataContext. U mnie wygląda to tak :
public DataRepository
{
public class DataContext
{
public List readers { get; set; }
public Dictionary books { get; set; }
public ObservableCollection relations { get; set; }
public ObservableCollection states { get; set; }
public DataContext()
{
readers = new List();
books = new Dictionary();
relations = new ObservableCollection();
states = new ObservableCollection();
}
}
public IFiller Filler { get; set; }
private DataContext data { get; set; }
public DataRepository()
{
data = new DataContext();
}
public DataRepository(IFiller fillIt)
: this() {
this.Filler = fillIt;
useFiller();
}
public void useFiller()
{
Filler.Fill(data);
}
}
Następnie chciałbym zaimplementować zbiór metod C.R.U.D do obsługi obiektów danych, dla każdej kolekcji z klasy DataContext.
Poniżej przykładową metodą :
public void Add(Readers reader)
{
data.readers.Add(reader);
}
Czy takie postępowanie ma wogole rację bytu ? wydaje mi się że jest to w dość dużym stopniu jednak nie poprawne. Proszę o wskazówki i nakierowanie jak mógłbym to w bardziej przystępny sposób zrealizować.