абстрактное соглашение об именовании классов [закрыто]
должны ли мы иметь стандарт кодирования команды, что имена абстрактных классов имеют префикс Abstract
? например,
public abstract class AbstractB implements B {}
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 появится описательный текст при наведении указателя мыши на объект. В этом случае префикс является избыточным.
Я не могу сказать " да " или " нет " в ответ, но что бы вы ни выбрали, используйте хороший статического анализа инструмент чтобы убедиться в этом.