Jak uzyc metody w kompozycji bez tworzenia nowego obiektu

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

Rejestracja: 1 rok temu

Ostatnio: 1 rok temu

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

Rejestracja: 3 lata temu

Ostatnio: 2 minuty temu

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

Rejestracja: 3 lata temu

Ostatnio: 2 minuty temu

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

Rejestracja: 3 lata temu

Ostatnio: 2 minuty temu

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

Rejestracja: 1 rok temu

Ostatnio: 1 rok temu

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

Rejestracja: 3 lata temu

Ostatnio: 2 minuty temu

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
Moderator

Rejestracja: 16 lat temu

Ostatnio: 5 godzin temu

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

Rejestracja: 1 rok temu

Ostatnio: 1 rok temu

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
Moderator

Rejestracja: 16 lat temu

Ostatnio: 5 godzin temu

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

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