Korzystanie z pól klasy-rodzica

0

Hej, programuję sobie od kilku miesięcy jakieś proste rzeczy w C# i przy projektowaniu jakichkolwiek aplikacji zawsze zastanawia mnie sytuacja taka jak poniżej. Jak najładniej i zgodnie z najlepszymi praktykami rozwiązywać takie problemy?

Załóżmy, że mamy jakąś tam klasę, np. Parent. Posiada ona listę obiektów klasy np. Child. Poza tym posiada ona jakieś inne pola, np. pole
listę SomeImportantList. I teraz powiedzmy, że któraś z metod klasy Child chciałaby korzystać z tej listy. Jedno z rozwiązań jakie mi się nasuwa to:

 public class Parent
    {
        public List<Child> Children { get; set; }

        public List<int> SomeImportantList { get; set; }

        public Parent()
        {
            SomeImportantList = new List<int> {10, 6, 3, 8, 4};
            Children = new List<Child>
            {
                new Child(SomeImportantList),
                new Child(SomeImportantList),
                new Child(SomeImportantList)
            };
        }
    }

    public class Child
    {
        private List<int> _someImportantList;

        public Child(List<int> SomeImportantList)
        {
            _someImportantList = SomeImportantList;
        }

        private void someMethod()
        {
// jakies tam operacje wymagajace odczytu SomeImportantList
        }
    }

 

Jednak czy jest sens wysyłać w konstruktorze do każdego nowego elementu tę samą listę? Czy można to rozwiązać jakoś lepiej i zgrabniej?

0

Nie widzę w tym nic złego, ale gdybyś podał realny przykład to może jest inne rozwiązanie.

0

To jest powszechne, że wiele klas dzieli ze sobą jakiś jeden inny obiekt.
Jedyne co złe w tym kodzie to nazwa parametru metody/konstruktora pisana wielką literą.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.