【日常业务开发】业务代码常见类命名

【日常业务开发】业务代码常见类命名


1、实体类。

  • 数据对象:***DO,***即为数据表名。 UserDO
  • 数据传输对象:***DTO,***为业务领域相关的名称。 UserDTO
  • 展示对象:***VO,***一般为网页名称。 UserVO
  • POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。

2、CRUD业务操作,三层命名。 ***Controller,***Service(接口),*** Dao/Mapper(接口)

UserController
接口: UserService  实现类: UserServiceImpl
UserDao/UserMapper

3、抽象类,Abstract***

AbstractFactoryBean
AbstractBeanDefinition
AbstractBeanFactory

4、异常类, ***Exception

GlobalExceptionHandler

5、工具类***Util,***Helper。都表示工具类,Util一般是无状态的,Helper以便需要创建实例才能使用。但是一般没有使用Tool作为后缀的。

HttpUtil
TestKeyFieldHelper
CreationHelper

6、***Constants

一般用于常量列表。

CommonConstant

7、***Mode,***Type, ***Enum

看到mode这个后缀,就能猜到这个类大概率是枚举。它通常把常见的可能性都列到枚举类里面,其他地方就可以引用这个Mode。

OperationMode
BridgeMode
ActionType
StatusEnum

8、***Filter

过滤器,用来筛选某些满足条件的数据集,或者在满足某些条件的时候执行一部分逻辑。如果和责任链连接起来,则通常能够实现多级的过滤。

FilenameFilter
AfterFirstEventTimeFilter
ScanFilter

9、***Interceptor

拦截器,其实和Filter差不多。不过在Tomcat中,Interceptor可以拿到controller对象,但filter不行。拦截器是被包裹在过滤器中。

HttpRequestInterceptor

10、***Pool

表示池子。内存池,线程池,连接池。

ThreadPool
ConnectionPool
ObjectPool
MemoryPool

11、***Wrapper

用来包装某个对象,做一些额外的处理,以便增加或者去掉某些功能。

IsoBufferWrapper
ResponseWrapper
MavenWrapperDownloader 

12、Option, Param,***Attribute,***Properties

用来表示配置信息。说实话,它和Properties的区别并不大,但由于Option通常是一个类,所以功能可以扩展的更强大一些。它通常比Config的级别更小,关注的也是单个属性的值。Param一般是作为参数存在,对象生成的速度要快一些。

SpecificationOption
SelectOption
AlarmParam
ModelParam

13、***Converter,***Resolver

转换和解析。一般用于不同对象之间的格式转换,把一类对象转换成另一类。注意它们语义上的区别,一般特别复杂的转换或者有加载过程的需求,可以使用Resolver。

DataSetToListConverter
LayoutCommandLineConverter
InitRefResolver
MustacheViewResolver

14、***Formatter

格式化类。主要用于字符串、数字或者日期的格式化处理工作。

DateFormatter
StringFormatter

15、***Factory

毫无疑问,工厂模式的命名,耳熟能详。尤其是Spring中,多不胜数。

SessionFactory
ScriptEngineFactory
LiveCaptureFactory

16、***Holder

表示持有某个或者某类对象的引用,并可以对其进行统一管理。多见于不好回收的内存统一处理,或者一些全局集合容器的缓存。

QueryHolder
InstructionHolder
ViewHolder

17、***Provider

Provider = Strategy + Factory Method。它更高级一些,把策略模式和方法工厂揉在了一块,让人用起来很顺手。Provider一般是接口或者抽象类,以便能够完成子实现。

AccountFeatureProvider
ApplicationFeatureProviderImpl
CollatorProvider

18、***Processor

某一类功能的处理器,用来表示某个处理过程,是一系列代码片段的集合。如果你不知道一些顺序类的代码怎么命名,就可以使用它,显得高大上一些。

CompoundProcessor
BinaryComparisonProcessor
DefaultDefaultValueProcessor

19、***Registrar

注册并管理一系列资源。

ImportServiceRegistrar
IKryoRegistrar
PipelineOptionsRegistrar

20、***Invoker,***Invocation

invoker是一类接口,通常会以反射或者触发的方式,执行一些具体的业务逻辑。通过抽象出invoke方法,可以在invoke执行之前对入参进行记录或者处理;在invoke执行之后对结果和异常进行处理,是AOP中常见的操作方式。

MethodInvoker
Invoker
ConstructorInvocation

21、***Initializer

如果你的应用程序,需要经过大量的初始化操作才能启动,那就需要把它独立出来,专门处理初始化动作。

MultiBackgroundInitialize
ApplicationContextInitializer

22、***Generator

生成器,一般用于生成代码,生成id等。

CodeGenerator
CipherKeyGenerator

23、***Aware

Aware就是感知的意思,一般以该单词结尾的类,都实现了Aware接口。拿spring来说,Aware 的目的是为了让bean获取spring容器的服务。具体回调方法由子类实现,比如ApplicationContextAware。它有点回调的意思。

ApplicationContextAware
ApplicationStartupAware
ApplicationEventPublisherAware

24、***Bootstrap,***Starter

一般作为程序启动器使用,或者作为启动器的基类。通俗来说,可以认为是main函数的入口。

AbstractBootstrap
ServerBootstrap
MacosXApplicationStarter
DNSTaskStarter

猜你喜欢

转载自blog.csdn.net/qq_45297578/article/details/128609647
今日推荐