这里没有“一个”正确答案。命名是很主观的,但是最重要的是,它在整个代码库中都应该保持 一致
。我只想为您添加(作为@fge的答案)一些其他选项:
使接口更加通用。
EmployeeRepository implements Repository
documentMappingService implements MappingService
将单个实现称为 “默认值” 。
DefaultEmployeeRepository implements EmployeeRepository
DefaultdocumentMappingService implements documentMappingService
将基本实现(如果有时扩展)称为 “ support” 。
EmployeeRepositorySupport implements EmployeeRepository
documentMappingServiceSupport implements documentMappingService
使用 Spring framework 时,我经常遇到这些命名约定。
编辑: 响应用户
nyxz对
-base或
base-约定的评论。
就像我之前说过的那样,命名是主观的,使用这样的
base命名法也没有错。但是,就我个人而言,我不喜欢使用它。原因如下:
如果您的实现将大部分直接使用,那么实例化类的代码会给人留下破坏OOP层次结构的印象。可能应该实例化特定的派生类。
如果您的实现主要是从扩展而来的,那么这个词
base
在某种程度上将变得多余。您正在扩展它,因此,它当然是基类。h!
在 第二 点主要适用于外设类在你的项目。在发布要在其他项目中使用和扩展的框架或库时提供的扩展点。
另一方面,使用该
base术语的一个好用例是框架内部的类,这些类将其他外围类之外的常用功能也包括在内。由于不应直接实例化这些类,因此将其标记
abstract为与第
一个 点一致。
这是
Adapter来自Android框架的层次结构作为示例:
接口层次结构。
public interface Adapter
public interface ListAdapter extends Adapter
public interface SpinnerAdapter extends Adapter本
abstract
base
类因素与众不同的行为和接口实现。public abstract class baseAdapter implements ListAdapter, SpinnerAdapter
外围设备类大多数实例化,但有时由Android应用程序扩展。
public class SimpleAdapter extends baseAdapter implements Filterable
public class ArrayAdapter
extends baseAdapter implements Filterable



