Как придумать более понятные имена интерфейсов?

Я видел в приложении такие интерфейсы, как:

IHasContent
IHasValue
IHasMesh
IHasGeometry
IHasTransformation

Разве их не должно быть?:

IHaveContent
IHaveValue
...

Или?:

IIncludeContent
IIncludeValue
...

Лично я склоняюсь к тому, чтобы просто сделать их:

IContent
IValue
IMesh
IGeometry
ITransform

Потому что не «t ISomething уже подразумевает, что у него есть это something ?

Что касается последнего, должен ли я вместо этого сделать его ITransformable ?

Я думаю использование I + (Has / Have / Include / Exist и т. д.) + Name делает имена интерфейсов более запутанными.

Любые идеи о том, как придумать лучшие имена интерфейсов, которые не будут неудобными, является точным и передает смысл?

17
задан Joan Venge 10 March 2011 в 22:55
поделиться