komunikator podzielony na pluginy dll- GUI i siec, problem z projektem

0

Witam! Przybieram się do napisania komunikatora opartego na 2 pluginach dll - plugin GUI definiuje wygląd programu oraz plugin sieci który będzie implementował protokół komunikacji.

http://www.abstraction.net/ViewArticle.aspx?articleID=67

Tutaj znalazłem opis wzorcu projektowego programu który używa pluginów dll, jednak nie rozwiązuje do końca mojego problemu. Załóżmy, że wczytuje gui.dll, siec.dll - oba pluginy korzystają wzajemnie ze swoich metod, jak to rozkminić? Musiałbym chyba użyć programu głównego jako łącznika między tymi pluginami, dodać jakieś callbacki... nie wiem, to mój pierwszy program na pluginach, proszę o wskazówki. Pozdro :)

0

Dlaczego kod obsługujący protokoł sieciowego ma korzystać z GUI? To nie ma sensu, powinno być wyłącznie odwrotnie!

0

Tylko callbacki przychodzą mi do głowy, napisałem o tym pomyśle wyżej... Tyle że tych callbacków będzie multum, czyli mam w głównym programie porobić funkcje które będą wywoływane przez plugin gui, które będą korzystały z kodu do obsługi sieci?

EDIT
Jakiś niewyspany jestem, po prostu do każdego pluginu dołączałbym deklaracje klasy interfejsu gui i sieci, klasa gui będzie miała wskaźnik na obiekt klasy sieci i na odwrót. Tak chyba powinno być ok.

0
arasso12 napisał(a):

Jakiś niewyspany jestem, po prostu do każdego pluginu dołączałbym deklaracje klasy interfejsu gui i sieci, klasa gui będzie miała wskaźnik na obiekt klasy sieci i na odwrót. Tak chyba powinno być ok.

Nie, nie będzie, bo powiążesz klasy sieci z klasami GUI, a takiego powiązania nie powinno być.
Co zrobisz, gdy będziesz chciał zmienić GUI aplikacji? Będziesz musiał napisać ją od nowa, bo obsługa sieci będzie sztywno powiązana z konkretną technologią GUI.

0

Pluginy byłyby oparte na klasach abstrakcyjnych, interfejoswych. Gdybym w klasie GUI dał pointer na klasę bazową sieci, klasa pochodna od niej mogłaby mieć własne metody, tylko podstawowe z nich nie mogłyby się zmienic. Tak sądzę, ale powiedz może jak Ty to widzisz, opisz jak możesz dokładniej Twoją wizję :) pozdro

0

Jeżeli powiążesz "sieć" z GUI za pomocą interfejsów, to prawdopodobnie wynajdziesz wzorzec Model View Presenter. ;)

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