Witam!
Mam problem natury architektonicznej. Piszę w c++ pod windowsem.
Planuje moduł zapewniający obsługę interfejsu USB i RS232. Chciałbym zaprojektować interfejs, który zainicjuje odpowiedni interfejs komputera (USB/RS232) w zależności od parametrów przekazanych przez metodę init. Jednocześnie interfejs zrealizowany jest w postaci wzorca projektowego automatu stanu, który pilnuje żeby nie zostały wykonane metody zapisu i odczytu danych kiedy nie było poprawnej inicjalizacji.
Moduł ma architekturę warstwową. Na górze znajduje się aplikacja, która chce wykonać funkcję init(), z parametrami na podstawie których zostanie zainicjowany odpowiedni interfejs komputera.
Przykładowo:
Gdzie parametryRS/USB to odpowiednie struktury z parametrami.
Interesuje mnie bardziej jak powinno to zostać rozwiązane, aby było możliwie poprawne architektonicznie. Nie zależy mi na napisanie kawałka bylejakiego kodu, bo to mam opanowane do perfekcji
Zależy mi na tym żeby interfejs był możliwie prosty, niezawodny i jednolity do jak najniższych warstw.
Myślałem nad wykorzystaniem szablonów specjalizowanych, ale nie wiem czy to najlepsze rozwiązanie. Przeciążenie funkcji w zależności od argumentów jest najprostrzym rozwiązaniem, ale czy najlepszym? Może factory pattern, który podepnie odpowiedni obiekt do state patternu interfejsu?
Macie może jakieś ciekawe propozycje?
PS> interfejs i interfejs komputera to dwie różne rzeczy - słaby z polskiego jestem
Mam problem natury architektonicznej. Piszę w c++ pod windowsem.
Planuje moduł zapewniający obsługę interfejsu USB i RS232. Chciałbym zaprojektować interfejs, który zainicjuje odpowiedni interfejs komputera (USB/RS232) w zależności od parametrów przekazanych przez metodę init. Jednocześnie interfejs zrealizowany jest w postaci wzorca projektowego automatu stanu, który pilnuje żeby nie zostały wykonane metody zapisu i odczytu danych kiedy nie było poprawnej inicjalizacji.
Moduł ma architekturę warstwową. Na górze znajduje się aplikacja, która chce wykonać funkcję init(), z parametrami na podstawie których zostanie zainicjowany odpowiedni interfejs komputera.
Przykładowo:
init(parametryUsb); //zainicjuje interfejs USB i odpowiednie jego ustawienia,
init(parametryRS); //j.w. tylko RS232Gdzie parametryRS/USB to odpowiednie struktury z parametrami.
Interesuje mnie bardziej jak powinno to zostać rozwiązane, aby było możliwie poprawne architektonicznie. Nie zależy mi na napisanie kawałka bylejakiego kodu, bo to mam opanowane do perfekcji
Zależy mi na tym żeby interfejs był możliwie prosty, niezawodny i jednolity do jak najniższych warstw.
Myślałem nad wykorzystaniem szablonów specjalizowanych, ale nie wiem czy to najlepsze rozwiązanie. Przeciążenie funkcji w zależności od argumentów jest najprostrzym rozwiązaniem, ale czy najlepszym? Może factory pattern, który podepnie odpowiedni obiekt do state patternu interfejsu?
Macie może jakieś ciekawe propozycje?
PS> interfejs i interfejs komputera to dwie różne rzeczy - słaby z polskiego jestem