Wątek przeniesiony 2023-07-14 12:29 z C# i .NET przez Riddle.

W jaki sposób przekazać przekazać implementacje wykresów w ładny sposób?

0

Witam,

mam taką sytuację w kodzie: jest klasa dokument CDocument, która zawiera w sobie kilkanaście obiektów klasy wykres CWykres. Aktualnie jest tak że w klasie CDocument tworzę te wszystkie obiekty klasy CWykres

CWykres w1 = new CWykres()

Jak można by zrobić to lepiej, ładniej?
W przyszłości mogą dojść jeszcze inne wykresy.
Chciałbym w klasie CDocument zrobić np. pętle żeby wykresy same się narysowały a nie edytować klasę jak dojdzie nowy wykres.

Pozdrawiam.

0

lista czy wektor czy co tam w C# masz, znaczy te wykresy wewnątrz dokumentu niech będą do niego wrzucone

0

tak wiem, tylko że to nadal nie będzie ładne rozwiązanie.

0
varec12344321 napisał(a):

Witam,

mam taką sytuację w kodzie: jest klasa dokument CDocument, która zawiera w sobie kilkanaście obiektów klasy wykres CWykres. Aktualnie jest tak że w klasie CDocument tworzę te wszystkie obiekty klasy CWykres

CWykres w1 = new CWykres()

Jak można by zrobić to lepiej, ładniej?
W przyszłości mogą dojść jeszcze inne wykresy.
Chciałbym w klasie CDocument zrobić np. pętle żeby wykresy same się narysowały a nie edytować klasę jak dojdzie nowy wykres.

Po pierwsze - YAGNI. Nie próbuj rozwiązywać problemów na zapas, jeśli jeszcze ich nie ma.

Ale jeśli faktycznie z jakiegoś powodu chcesz to zrobić teraz, to pytanie się sprawadza do jednego: Czy tworzenie new CWykres() wymaga jakichś danych z CDokument? Jeśli nie, to możesz zrobić tak jak pisze @Miang i po prostu przekazać kolekcję z CWykres, nie będzie nic złego w tym podejściu.

Ale jak mówiłem - lepiej to zostawić na później, gdyby będziesz miał taką potrzebę. Jeśli jej nie masz to niepotrzebnie komplikujesz kod - dodajesz elementy do kodu które nie są potrzebne, więc są komplikacją.

0

Trochę źle napisałem, każdy wykres to inna klasa więc nie będzie tak prosto dodać do listy a potem odczytać taki obiekt.
Potrzebny będzie chyba interfejs, który muszą zaimplementować klasy wykresów.

0
varec12344321 napisał(a):

Trochę źle napisałem, każdy wykres to inna klasa więc nie będzie tak prosto dodać do listy a potem odczytać taki obiekt.
Potrzebny będzie chyba interfejs, który muszą zaimplementować klasy wykresów.

To zależy czy mają spójne użycie czy nie.

Jeśli tak, to możesz wyodrębnić z nich interfejs.

Jeśli nie, to przekaż je osobno jako stałe parametry.

0

Zrobiłem to poprzez interfejs, póki co jestem zaspokojony:)

0

Pokażesz kod?

1 użytkowników online, w tym zalogowanych: 0, gości: 1