Switch-Anweisungen sind schlecht?

Habe ich vor kurzem erfahren, dass switch-Anweisungen sind schlecht in OOP, perticularly von "Clean Code"(p37-39) von Robert Martin.

Aber betrachten Sie dieser Szene: ich Schreibe eine Spiel-server, das empfangen von Nachrichten von clients, die enthalten eine ganze Zahl, die angibt, Spieler die Aktion wie bewegen, angreifen, Holen Einzelteil... etc, es werden mehr als 30 verschiedene Handlungen. Wenn ich code schreiben, der Umgang mit diesen Nachrichten, keine metter, was für Lösungen ich überlege, es zu benutzen, Schalter irgendwo. Was Muster sollte ich verwenden, wenn keine switch-Anweisung?

Siehe [Große Switch-Anweisungen: Bad OOP? ](stackoverflow.com/questions/505454/...)
'"Considered Harmful" Considered Harmful'.
oft hinzufügen einer Klasse minimiert die Menge der vorhandenen code zu ändern. Wenn Sie code haben, hängt von den spezifischen Klassen, die bereits vorhanden sind, werden diese wohl switch-Anweisungen (oder Zweigstellen der wenn/dann/sonst), und jeder von diesen wird geändert
beim hinzufügen eines case zu Ihr zu wechseln, Sie tun müssen, regression tests und entwickeln von Testfällen für diese Klasse. In der Erwägung, dass das hinzufügen einer weiteren Klasse nicht benötigen, dass viele tests entwickelt werden, da es eine "neue Funktionen" und Sie sind sich nicht berühren vorhandenen Quelle, je nachdem, wie Sie laden die neuen Klassen (aka Reflexion), ansonsten regression tests müssen getan werden, auch für die instanziieren code
sicher, wenn die app ist klein, oder es ist wahrscheinlich nicht viel ändern dann wird ein Schalter kann klarer sein. Manchmal "springen"s sind auch OK. Ich wurde nur darauf hin, es gibt gute Gründe, warum Leute sagen, eine Klasse hinzufügen, qualitativ unterschiedliche, vom hinzufügen einen Schalter

InformationsquelleAutor Hongbo | 2010-12-11

Schreibe einen Kommentar