абстрактное соглашение об именовании классов [закрыто]


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

public abstract class AbstractB implements B {}
6 52

6 ответов:

да, на самом деле, если вы посмотрите на 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 появится описательный текст при наведении указателя мыши на объект. В этом случае префикс является избыточным.

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

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