Nadmiar interfejsu

2007-08-09 16:40

Projektując klasy i kontrolki systemu GUI, wzoruję się na kilku istniejących rozwiązaniach. Większość wzorców czerpię jednak z Windows Forms, części platformy .NET. Tym, co ostatnio zwróciło w niej moją uwagę, to fakt, że wiele czynności można w niej wykonać na kilka sposób. Mówiąc ściślej, klasy wchodzące w skład WF posiadają często więcej niż jedną składową służącą osiągnięciu tego samego celu.

Przykład? Proszę bardzo. Do zmiany położenia i wymiarów kontrolki wystarczą dokładnie cztery właściwości. Mogą to być: Left (pozycja lewej krawędzi kontrolki), Top (górnej krawędzi), Width i Height. Tyle w zupełności wystarczy. Klasa Windows.Forms.Control ma też jednak inne:

  • Right – pozycja prawej krawędzi
  • Bottom – dolnej krawędzi
  • Location – pozycja lewego górnego rogu
  • Size – wymiary kontrolki
  • Bounds – prostokąt otaczający kontrolkę

Wszystkie je można oczywiście uzyskać z tych czterech, które wymieniłem na początku. Istnieje też rzecz jasna mnóstwo innych kombinacji z innymi właściwościami “pierwotnymi” i “pochodnymi”.

Można mieć jednak wątpliwości, czy istnienie różnych dróg dotarcia do podobnych danych jest konieczne i właściwe. Przy tak bogatym interfejsie (inny przykład: metoda Graphics.DrawImage() ma aż 30 (!) przeciążonych wersji) można bardzo długo zastanawiać się nad tym, którego sposobu mamy użyć w konkretnym przypadku.
To prawda, że interfejs zbyt ubogi jest zwykle o wiele większym problemem. Uważam jednak, że w programowaniu brzytwa Ockhama ma zastosowanie i że dróg prowadzących do tego samego celu nie należy mnożyć ponad potrzebę.

Tags:
Author: Xion, posted under Programming »


One comment for post “Nadmiar interfejsu”.
  1. Jacek Złydach, TeMPOraL:
    August 10th, 2007 o 14:40

    Scott Meyers pisał w swoich książkach, że interfejs powinien być kompletny i minimalny – tj. pozwalać na realizację każdego wymaganego od klasy zadania, ale równocześnie być jak najmniejszy. W szczególności opisana przez Ciebie sytuacja najprawdopodobniej świadczy o złym zaprojektowaniu ;)

    W temacie metody Graphics.DrawImage() – na TED znalazłem dziś ciekawą prezentację – http://www.ted.com/index.php/talks/view/id/93 . Zwraca ona uwagę na to, że nadmiar wyboru nie tylko nie daje wolności, ale tworzy paraliż i niszczy radość życia.
    Pozdrawiam!

Comments are disabled.
 


© 2018 Karol Kuczmarski "Xion". Layout by Urszulka. Powered by WordPress with QuickLaTeX.com.