Jak uzyc metody w kompozycji bez tworzenia nowego obiektu

Odpowiedz Nowy wątek
2019-06-11 16:49
0

Mam dział druku składający się z 3 drukarni drukarnia po zakończeniu metody drukuj ma o tym powiadamiać dział druku a ten ma dodawać to co się wydrukowało do zasobów jakiś sposób na przekazanie tej informacji do działu druku z metody drukarni?

Mamy zajrzeć do szklanej kuli o co Ci chodzi? Jak to się ma do tytułu wątku? Więcej info prosimy. - lion137 2019-06-11 16:57
Z takim opisem trudno o konkretną poradę. Użyj kolejek, zdarzeń, wzorca obserwator, callbacków, kontynuacji. - Afish 2019-06-11 16:57
Chodzi o to czy jest jakis sposob aby drukarnia skladajaca sie na dzial druku byla w stanie uzyc metody z tego dzialu druku bez tworzenia kolejnego obiektu klasy dzialdruku - Maciej x 2019-06-11 17:02

Pozostało 580 znaków

2019-06-11 17:12
0

" Chodzi o to czy jest jakis sposob aby drukarnia skladajaca sie na dzial druku byla w stanie uzyc metody z tego dzialu druku bez tworzenia kolejnego obiektu klasy dzialdruku".
To jaki problem, DzialDruku może być interfejsem, a Drukarnia i może inne klasy dziedziczą go i implementują sobie odpowiednie metody.


drukarnia jest komponentem dzialu druku - Maciej x 2019-06-11 17:18
drukarnie nic nie dziedziczą dzial druku zbiera 3 drukarnie w calosc - Maciej x 2019-06-11 17:20

Pozostało 580 znaków

2019-06-11 17:24
0

Tutaj wątek, między innymi, o kompozycji: Agregacja, kompozycja, asocjacja . Jeśli tak, to to Dzialdruku jest "właścicielem" obiektu Drukarnia i to on może sobie wywołać jej [drukarni] metodę i zapisać gdzieś wynik.


To wiem tylko czy mozna jakos to odwrocic? - Maciej x 2019-06-11 17:25
Odpowiadaj w postach, bo się to zrobi nieczytelne. - lion137 2019-06-11 17:28

Pozostało 580 znaków

2019-06-11 17:30
0

"To wiem tylko czy mozna jakos to odwrocic?" Pewnie, że można, ale wtedy Zmienisz cały schemat programu (drukarnia będzie właścicielem działu druku), Jesteś pewien, że o to Ci chodzi?


Pozostało 580 znaków

2019-06-11 17:45
0

Mam narzucone to ze drukarnia jest komponentem i ma informowac dział druku w jakis sposob. wydawalo mi sie ze wywolanie metody z dzialudruku na koniec metody z drukarnijest dobrym sposobem powiadomienia.

Pozostało 580 znaków

2019-06-11 17:54
0

Tak, tak będzie Ok, metoda z działu druku przyjmuje coś co zwraca drukarnia (wydruk, info gdzie on jest, w bazie czy coś) i zapisuje to sobie gdzieś; w czym, w takim razie problem?

class DzialDruku {
    // gdzieś tutaj też definicja klasy Drukarnia i reszta kodu
    Drukarnia wydruk = new Drukarnia(<ewentualnie parametry>);
    // drukarnia drukuje.....
    void zapiszWydrukDoBazy(Drukarnia param <ewentualnie inne>);
    // i dalej
}

Pozostało 580 znaków

2019-06-12 08:40
1

Ale gdzie dokładnie jest problem? o_O Czemu DzialDruku nie może przekazać do Drukarni referencji na siebie?

class Drukarnia{
    private final DzialDruku parent;
    public Drukarnia(DzialDruku  p){
        this.parent=p;
    }

    public void powiadom(){
        parent.skonczylemDrukowac();
    }
}
class DzialDruku{
    private final Drukarnia drukarnia;
    public DzialDruku(){
        drukarnia = new Drukarnia(this);
    }
}

Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2019-06-12 10:22
0

No okej a moze jakos powiadomic dzial handlowy z ktorym nic go nie laczy?

A czy anakonda ma szanse w starciu z aligatorem? - kixe52 2019-06-12 10:29
Odpowiedź na moje pytanie można wywnioskować po filmikach przedstawiających walkę tych dwóch stworzeń. Tutaj nawet nie mamy zalążku kodu :) - kixe52 2019-06-12 14:12
Podpowiedź dla Macieja: Koledzy oczekują wyjaśnienia czym jest dział handlowy. Skoro nie precyzujesz czym jest ten dział handlowy, to może on być czymkolwiek, np. grupą ludzi, którzy mają np. skrzynki pocztowe a nie jakąś apkę. Albo mają klatkę z aligatorem i anakondą, i oczekują, że zakończenie drukowania zostanie zasygnalizowane zwolnieniem blokady i rozpoczęcie walki. Jak wygra anakonda to znaczy że drukowanie się nie powiodło. - qbns 2019-06-12 14:26
https://www.youtube.com/watch?v=9yGN10tqQ50 Kto ma większego stwora ten wygrywa. Więc 50/50, że drukowanie się nie powiodło - kixe52 2019-06-12 14:31
A to nie python pokonał aligatora?:) Po czym wydrukował i powiadomił dział handlowy:) - lion137 2019-06-12 19:12

Pozostało 580 znaków

2019-06-12 19:08
1

No okej a moze jakos powiadomic dzial handlowy z ktorym nic go nie laczy?

No może, jakimś middleware komunikacyjnym na przykład. Może wrzucić taka informacje do kolejki, z której ten drugi sobie czyta. Albo może mu to wysłać pocztą.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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