Wpis z mikrobloga

Mirki, pytanie o dekorator - czy to, co niżej opisałem ma sens?

Chciałbym użyć dekoratorów do nadawania uprawnień użytkownikowi. Mam interfejs (powiedzmy IUser), w którym określam jakie rzeczy są w ogóle w systemie przewidziane dla użytkownika. W samej klasie User te metody na dzień dobry zwracają wyjątek dający info, że ten użytkownik nie ma uprawnień, by zrobić daną rzecz. Implementacja jest dopiero w metodzie wewnątrz dekoratora. Wszystkie inne metody, które tego dekoratora nie obchodzą, idą w głąb i wywołują/zwracają user.doStuff(). Czy to jest poprawne podejście do problemu?

#programowanie #wzorceprojektowe
  • 4
@Tojtek: Wygląda na strasznie #!$%@? pomysł xD

Zacznijmy od tego, że nie masz możliwości nadania kilku ról jednego userowi, bo jedna rola ( z jakimś zestawem uprawnień) to jedna klasa dekorująca. Czyli de facto nie masz możliwości nadawania uprawnień użytkownikowi, no chyba że dekorator reprezentuje konkretnego usera, a nie rolę. Wtedy masz, ale w sposób dość hardkorowy, czyli musisz modyfikować kod, żeby wykonać pracę nieprogramistyczną.

Po drugie nie masz możliwości za