Нужна помощь в выборе имени для интерфейса - PullRequest
5 голосов
/ 16 октября 2008

Я рефакторинг нескольких классов в приложении, чтобы использовать интерфейсы вместо базовых классов. Вот интерфейсы, которые я создал до сих пор:

  • ICarryable реализуется всеми объектами Item
  • IActable реализован всеми объектами Actor
  • IUseable, реализованный некоторыми подклассами Item
  • IWieldable реализовано некоторыми подклассами Item

Вы можете видеть, что основными базовыми классами по-прежнему являются Предмет и Актер. Они имеют общий интерфейс в том, что они оба расположены на карте, поэтому у них есть свойство Location. Карта не должна заботиться о том, является ли объект актером или элементом, поэтому я хочу создать для него интерфейс. Вот как будет выглядеть интерфейс

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

Это не проблема, но я не могу придумать, как назвать этот интерфейс. IMappable приходит на ум, кажется, немного отстой. Есть идеи?

Ответы [ 4 ]

9 голосов
/ 16 октября 2008

Похоже на ILocateable. То, чье местоположение вы можете обнаружить и отследить.

3 голосов
/ 16 октября 2008
  • ILocatable
  • IGeo
  • IAmSomewhere
  • IIsSomewhere

Edit:

  • INoun
1 голос
/ 16 октября 2008

Я бы просто использовал LOLCats нотацию.

ICanHasLocation

или, может быть

IHasLocation

или абсурд

ImInYourProgramHavingALocation

Да, и, кстати, есть хотя бы одна Duck Typing библиотека для C #, что довольно крутая концепция.

0 голосов
/ 16 октября 2008

IWhereYouAtable - Boost mobile

ITwentyable - как в ваших 20 (сокращение от 10-20 - CB сленг)

серьезно, хотя ILocateable хорош.

...