Должен ли у нас стандартный код кодирования, что имена абстрактных классов имеют префикс 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 будут всплывать описательный текст при наведении на объект. В этом случае префикс избыточен.
, который требует javadocs, целую «черную вещь» для команды, которая сражается за битвы в стиле кодирования. –
Я не буду говорить яй или нет в ответ, но что бы вы ни выбрали, используйте хороший static analysis tool, чтобы обеспечить его.
Как и большинство вопросов этого типа: «это зависит». Мне нравится последовательность и ясность, поэтому, если это сработает для вас и вашего магазина, отлично. Однако, если у вас есть устаревшие абстрактные классы, вы захотите вернуться и реорганизовать их на одно и то же соглашение об именах.
Я уверен, что этот вопрос будет закрыт. Это очень субъективно. Я голосую, да. –
Но если ваш интерфейс B не будет называться InterfaceB по тому же стандарту – bstick12
@bstick: Nooooo! Интерфейсы - это типы. Назовите их такими, какие они есть! –