Komunikacja między zawieranymi klasami - kwestia projektowa

0

Cześć wszystkim mam problem związany z projektem a dokładniej ze sposobem komunikacji pomiędzy klasami zilustruje to na przykładzie. Mam klasę główną A która zawiera w sobie pewne zmienne, struktury i inna klasę której zleca wykonywanie zadań na tych zmiennych.

Głowna klasa

class A
{

public:
    A();   
    void request(); 

private:

    std::string name;
    unsigned id;
    std::list< std::string > types;
    std::map< std::string, std::list< std::string > > log;

    B b; // klasa odpowiedzialna za wykonywanie zadań na składowych
};

void A::request()
{
    b.data(); // jak przekazać dane, [ read only ]
}

metoda request z głównej klasy wywołuje metodę klasy B zlecając jej jakieś zadanie i teraz najważniejsze - jaki jest najlepszy sposób na przekazanie klasie B danych klasy A?

Bo wężyk typu

void A::request()
{
    b.data( name, id, types, log );
}

nie wygląda dobrze, tym bardziej że danych będzie później więcej. Może jakaś ogólna ( znana obu klasą ) struktura? A może po prostu metody getSomeValue() ?

0

Moze zilustruj sytuacje, czym sa te klasy, moze wystarczy dziedziczenie (wtedy klasa B ma dostep do skladowych nieprywatnych A), moze jest jakis blad projektowy.. W takim przekazaniu parametrow nie ma nic zlego jezeli nie ma jakiegos bledu w projektowaniu. Pzdr

0

@MateuszS dziedziczenie to relacja "jest czymś" więc akurat tutaj wystąpić nie może.
Mam główna klasę "przechowującą" pewne dane pobierane od użytkownika która to ma klasę "zadaniową" której zleca dalsze czynności na tych danych.
Być może "wężyk" jest ok w sumie tak byłoby najprościej ale słabo to będzie wyglądało gdy będę przekazywał 10 składowych.

Zastanawiałem się nad jakąś wewnętrzna strukturą typu taskManager którą bym przekazywał jako read only do klasy B.

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