包名
- bean/entity:存放实体类文件
- model:如果我们的entity是自动生成的,有时候无法满足业务要求,这是就需要我们重新封装一个Model,放在这里。
- bo:业务对象,封装对象、复杂对象,里面可能包含多个类
- query:查询对象,主要用于复杂查询条件的封装
- vo:视图层对象,主要用于视图层
- dataobject:存放数据源对象类文件
- conn: 建立了一个数据库连接对象,其他所有涉及到数据库操作的文件都需要包含这个文件并引用该对象。
- dao:存放数据层文件
- repository:和dao层类似,在使用spring data jpa时的常用包名
- mapper:和dao层类似,在使用Mybatis时的常用包名
- service:存放服务层文件
- manager:存放服务层文件(公共服务层)
- controller:存放控制层文件
- web:存放控制层文件
- config:存放配置类文件
- enums:存放枚举类文件
- exception:存放异常类文件
- job:存放任务类文件
- utils:存放工具类文件
- aspect:存放切面类文件
- converter:存放转换器文件
- interceptor:存放拦截器文件
- constant:存放常量
- inf: 服务间接口定义
- external: 访问外部服务层,如果需要访问其他服务或者外部资源,对于这部分的访问都封装都在这层
类名
类名一般上多使用名词,方法名一般多用动词和助动词,这是因为类名要抽象出拥有某种职责的某物,所以多使用名词。
声明接口时,我们一般使用形容词来作为接口的名称(例如:Iterable、Closeable等)。通过使用形容词,可以较好的注明类所拥有的特性。
-
Client:类似HttpClient,在有Server-Client的含义的情况下使用,如TwitterApiClient, QiitaApiClient
-
Store、Storage、Registry:访问数据库,在磁盘进行数据持久化时使用,如FavoriteSettingStore, DataStorage, ConfigRegistry
-
Cache:缓存时使用,如TimelineCache
- Log:日志或是存储操作历史记录的路径,如UsageLog
- History: 存储历史记录的路径,如UsageHistory
- Configuration、Preference、Setting: 存储设定数据的路径,如 TimelineConfiguration
- Logger:执行日志操作,如UsageLogger
- Cleaner、Sweeper: 清除数据时使用,如CacheCleaner、CacheSweeper
- Filter:筛选数据时使用,如TimelineFilter
- Extractor:从某个数据中抽出其他数据, 如MessageExtractor
- Formatter:格式化某个数据输出为其他数据,如MessageFormatter
- Collector:收集数据,如AnalyticsDataCollector
- Provider:将上面提到过的DB、http通信、Cache等封装化后的上位层。
- Loader:读取数据,如TimelineLoader
- Configurator:存储设定的默认值、将某种数据自动的保存到设定,如FirstSettingConfigurator
- Migrato:处理当版本升级等数据结构发生变化时的逻辑,如UserDataMigrator
- Job、Task、Runnable、Executable: 统一处理异步操作,如UploadJob, MigrationTask
- Runner、Executor、Worker:执行被给予的Job和Task,如UploadJobRunner, MigrationTaskExecutor
- Aware:拥有同步操作相关的某些Context,表示在其管理下的接口(Spring Framework有使用),如ApplicationContextAware
- Facade:实现Facade模式,如BoundServiceFacade
- Service:将兼容性的实现给封装化,并实现对各种功能的访问的层,如ApplicationControllerService
- Resolver:根据用户环境进行Routing处理的层,如ContentResolver
- Controller:MVC中的Controller
- Action:表示操作,如SubmitAction, CancelAction
- Dispatcher、Handler: 接受操作执行处理,如SubmitActionDispatcher, UserActionHandler
- Listener, Watcher: 监视操作,Observer模式的实现名,如ClickListener, TextEditWatcher
- Request:请求参数 DTO 实体类放在 Request 文件夹下,且以 Request 结尾
- Response:响应 DTO 实体类放在 Response 文件夹下,且以 Response 结尾
- 如果请求参数 DTO 实体类、响应 DTO 实体类有基类要继承,那么建议为基类取名为 RequestBase、ResponseBase。
- 请求参数 VO 实体类以 Input/Form/Query 结尾
- 响应 VO 实体类以 Output/List/Result 结尾
可以通过codeif查找合适的命名规则
https://github.com/unbug/codelf/wiki