Должен ли у нас стандартный код кодирования, что имена абстрактных классов имеют префикс Abstract
? например.
public abstract class AbstractB implements B {}
Должен ли у нас стандартный код кодирования, что имена абстрактных классов имеют префикс Abstract
? например.
public abstract class AbstractB implements B {}
Да, на самом деле, если вы посмотрите на 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
и т.д.
Как правило, любой тип стандарта - это хорошая вещь в настройке команды. В противном случае члены команды могут называть классы таким образом, что только они понимают, а затем вы можете получить сочетание разных стилей кодирования, что приводит к путанице.
Для читаемости это звучит неплохо. При чтении кода вы сразу узнаете, что такое класс. Пока все следуют стандарту, это хорошо.
Современные IDE будут всплывать описательный текст при наведении на объект. В этом случае префикс избыточен.
Я не скажу yay или nay в ответе, но что бы вы ни выбрали, используйте хороший инструмент статический анализ, чтобы убедиться в этом.
Как и в большинстве вопросов этого типа: "это зависит". Мне нравится последовательность и ясность, поэтому, если это сработает для вас и вашего магазина, отлично. Однако, если у вас есть устаревшие абстрактные классы, вы захотите вернуться и реорганизовать их на одно и то же соглашение об именах.