Подтвердить что ты не робот

Абстрактное соглашение об именах классов

Должен ли у нас стандартный код кодирования, что имена абстрактных классов имеют префикс Abstract? например.

public abstract class AbstractB implements B {}
4b9b3361

Ответ 1

Да, на самом деле, если вы посмотрите на javadocs стандартной библиотеки на http://download.oracle.com/javase/6/docs/api/, вы увидите, что список классов в нижний левый кадр начинается с абстрактных классов, используя соглашение об именах, упомянутое в вашем вопросе.

AbstractAction
AbstractAnnotationValueVisitor6
AbstractBorder
AbstractButton
AbstractCellEditor
AbstractCollection
AbstractColorChooserPanel
AbstractDocument
AbstractDocument.AttributeContext
AbstractDocument.Content
AbstractDocument.ElementEdit
AbstractElementVisitor6
AbstractExecutorService
AbstractInterruptibleChannel
AbstractLayoutCache
AbstractLayoutCache.NodeDimensions
AbstractList
AbstractListModel
AbstractMap
AbstractMap.SimpleEntry
AbstractMap.SimpleImmutableEntry
AbstractMarshallerImpl
AbstractMethodError
AbstractOwnableSynchronizer
AbstractPreferences
AbstractProcessor
AbstractQueue
AbstractQueuedLongSynchronizer
AbstractQueuedSynchronizer
AbstractScriptEngine
AbstractSelectableChannel
AbstractSelectionKey
AbstractSelector
AbstractSequentialList
AbstractSet
AbstractSpinnerModel
AbstractTableModel
AbstractTypeVisitor6
AbstractUndoableEdit
AbstractUnmarshallerImpl
AbstractWriter

Возьмите любой из них, скажем первый, и проверьте его определение: AbstractAction. Он действительно реализует Action, который снова похож на ваше соглашение. Подклассы называются такими: ClosedAction, MaximizeAction и т.д.

Ответ 2

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

Ответ 3

Для читаемости это звучит неплохо. При чтении кода вы сразу узнаете, что такое класс. Пока все следуют стандарту, это хорошо.

Ответ 4

Современные IDE будут всплывать описательный текст при наведении на объект. В этом случае префикс избыточен.

Ответ 5

Я не скажу yay или nay в ответе, но что бы вы ни выбрали, используйте хороший инструмент статический анализ, чтобы убедиться в этом.

Ответ 6

Как и в большинстве вопросов этого типа: "это зависит". Мне нравится последовательность и ясность, поэтому, если это сработает для вас и вашего магазина, отлично. Однако, если у вас есть устаревшие абстрактные классы, вы захотите вернуться и реорганизовать их на одно и то же соглашение об именах.