我们应该有一个团队编码规范,抽象类的名称应该有前缀Abstract
吗?例如:
public abstract class AbstractB implements B {}
我们应该有一个团队编码规范,抽象类的名称应该有前缀Abstract
吗?例如:
public abstract class AbstractB implements B {}
实际上,如果您查看标准库的Java文档,位于 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
等。
通常,团队合作中任何类型的标准都是一件好事。 否则,团队成员可能会以只有他们能理解的方式命名类,导致不同编码风格混杂而引起混乱。
为了可读性,这听起来是个好主意。在阅读代码时,您将立即知道类是什么。只要每个人都遵循标准,就很好。
和大多数这类问题一样:“视情况而定”。我喜欢保持一致性和清晰度,所以如果这对您和您的店铺有效,那很好。但是,如果您有遗留的抽象类,则需要返回并将它们重构为相同的命名约定。