2010-04-25 17 views
6

Wenn ich einen Namen für eine neue Klasse brauche, die das Verhalten einer existierenden Klasse erweitert, habe ich normalerweise Schwierigkeiten, einen Namen dafür zu finden.Gibt es ein Wörterbuch über das allgemeine Programmiervokabular?

Zum Beispiel, wenn ich eine Klasse MyClass haben, dann wird die neue Klasse mit dem Namen etwas wie MyClassAdapter, könnte MyClassCalculator, MyClassDispatcher, MyClassParser, ...

Dieser neue Name sollte natürlich das Verhalten der Klasse repräsentieren und wäre im Idealfall dasselbe wie das Designmuster, in dem es verwendet wird (Adapter, Dekorateur, Fabrik, ...). Aber da wir Designmuster nicht überstrapazieren, ist das nicht immer die Lösung :)

Also, wissen Sie für ein Wörterbuch oder eine Liste von geläufigen Wörtern, die wir verwenden können, um das Verhalten der Klasse darzustellen, die enthält eine kurze Beschreibung des erwarteten Verhaltens? Einige Beispiele: Replikator, Schatten, Token, Akzeptor, Worker, Mapper, Treiber, Bucket, Socket, Validator, Wrapper, Parser, Verifier, ...

Sie könnten diese Liste auch als Spickzettel für Metaphern betrachten, mit denen Sie Ihre Problemdomäne besser verstehen können.

+0

Webster ist ein ziemlich gutes Wörterbuch. Probieren Sie das aus. –

+0

Ich würde fast FOLDOC vorschlagen (http://foldoc.org) wegen des Titels der Frage (aber obwohl es ein Computerwörterbuch und eine interessante Ressource ist, ist es nicht das, wonach gefragt wird). – stakx

Antwort

0

Ich denke, es ist eher seltsam zu versuchen, das Verhalten einer Klasse von seinem Namen zu reflektieren (oder zu bezeichnen oder vorzuschlagen oder zu meinen oder zu implizieren). Sicher ist das Verhalten einer Klasse durch seine Methoden definiert?

denke ich auch, dass Ihremein Wörterbuch verwenden müssten Sie auf meine Art des Denkens über die Welt abonnieren. Selbst wenn wir in der gleichen Problemdomäne arbeiten (und ich wette, dass wir es nicht sind), denke ich nicht, dass dies für Sie einfach wäre.

Ich schlage daher vor, dass Sie tun, was Sie fast selbst vorschlagen: leiten Sie Ihr eigenes Wörterbuch aus der Terminologie der Problemdomäne ab. Diese Übung würde Ihnen helfen, die Domäne zu verstehen.

Schließlich könnten Sie besser als ein Wörterbuch für einen Thesaurus greifen.

+4

Nun, es gibt * gängige Idiome für Klassen- (und Methoden-) Namen, und das ist normalerweise eine * gute * Sache (denke Designmuster), um die Lernkurve einer neuen API zu erleichtern. –

2

Ich würde empfehlen, Design-Muster in Namen zu verwenden. Sie haben mit dem Namen MyClass begonnen und ihn auf MyClassAdapter, MyClassCalculator, MyClassDispatcher, MyClassParser usw. erweitert.

Aber da Sie wissen, dass dies Klassen sind, und sie gehören Ihnen, warum nicht Adapter, Rechner, Dispatcher, Parser.

Aber macht der Adapter universell das, was er sagt? Berechnet der Rechner absolut alles oder gibt es einen bestimmten Job?

Gute Namen könnten sein: WindowToCommProtocol (Name, was es anpasst), Payroll (Berechnung ist nur eine Aufgabe), UICentral (klingt für mich wie ein Dispatcher), etc. Rechner und Parser sollten normalerweise den Zustand nicht beibehalten, sobald ihre Arbeit erledigt ist fertig, also klingen diese eher nach Funktionen, nicht nach Klassen.