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?
" 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.
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?" 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?
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.
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
}
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);
}
}
No okej a moze jakos powiadomic dzial handlowy z ktorym nic go nie laczy?
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ą.