2008-10-16 8 views
5

Ich refactoring eine Reihe von Klassen in einer Anwendung, um Schnittstellen anstelle von Basisklassen zu verwenden. Hier sind die Schnittstellen ich bisher erschaffen:Benötigen Sie Hilfe bei der Auswahl eines Namens für eine Schnittstelle?

  • ICarryable von allen Artikeln implementiert Objekte
  • IActable von allen Schauspielern implementiert Objekte
  • IUseable von einigen Artikeln implementiert Unterklassen
  • IWieldable durch einige Artikel Unter umgesetzt Klassen

Sie können sehen, die wichtigsten Basisklassen sind noch Item und Actor. Diese haben eine gemeinsame Schnittstelle, da sie sich beide auf einer Karte befinden und eine Location-Eigenschaft besitzen. Der Map sollte es egal sein, ob das Objekt ein Actor oder ein Item ist, also möchte ich eine Schnittstelle dafür erstellen. Hier ist, was die Schnittstelle wie

public interface IUnnameable { 
    event EventHandler<LocationChangedEventArgs> LocationChanged; 
    Location Location { get; set; } 
} 

aussehen würde das kein Problem, aber ich kann nicht glauben, was diese Schnittstelle zu nennen. IMappable kommt mir durch scheint ein bisschen lahm. Irgendwelche Ideen?

Antwort

9

Klingt wie ein ILocateable. Etwas, dessen Standort Sie entdecken und verfolgen können.

3
  • ILocatable
  • Igeo
  • IAmSomewhere
  • IIsSomewhere

Edit:

  • INoun
+0

@BCS, scheint du Matt zu ILocateable geschlagen zu haben. Ich mag es so weit, aber ich werde sehen, ob etwas Besseres kommt, bevor ich deine Antwort als akzeptiert markieren. Ich mag ILocateable, obwohl :) –

+0

@Mark Matt bekam es zuerst ... (sortieren nach ältesten) – BCS

+0

Meine Güte, es muss aber eng gewesen sein. Es macht mir nichts aus, wenn Sie BCS als Antwort markieren. –

1

Ich würde einfach LOLCats Notation verwenden.

ICanHasLocation

oder vielleicht

IHasLocation

oder die absurde

ImInYourProgramHavingALocation

Oh, und übrigens - es gibt mindestens eine Duck Typing Bibliothek für C#, das ist ein ziemlich cooles Konzept.

+1

Ordentliche Bibliothek, obwohl, ich glaube nicht, dass es dafür benötigt wird. Ich denke, ich mag IHasLocation am meisten, aber ich werde ILocateable wählen, um mit einigen anderen Interface-Namen in meinem Projekt übereinzustimmen. Vielen Dank ;) –

0

IWhereYouAtable - Boost Mobile

ITwentyable - wie in dem, was (10-20 kurz - CB Slang) Ihr 20 ist

ernst obwohl ILocateable gut ist.

Verwandte Themen