代码类的命名
2023-05-13 16:00:52 13 举报
AI智能生成
日常编码中,代码的命名是个大的学问。能快速的看懂开源软件的代码结构和意图,也是一项必备的能力。
作者其他创作
大纲/内容
回调类
Callback
callback通常是一个接口,用于响应某类消息,进行后续处理
SuccessCallback
Handler
Handler通常表示持有真正消息处理逻辑的对象,它是有状态的
ChannelHandler
Trigger
tigger触发器代表某类事件的处理,属于Handler,通常不会出现在类的命名中
CronTrigger
Listener
Listener的应用更加局限,通常在观察者模式中用来表示特定的含义。
EventListener
Aware
Aware就是感知的意思,一般以该单词结尾的类,都实现了Aware接口。
具体回调方法由子类实现,比如ApplicationContextAware。它有点回调的意思。
ApplicationContextAware
ApplicationStartupAware
ApplicationEventPublisherAware
监控类
Metric
表示监控数据。
TimelineMetric
HistogramMetric
Estimator
估计,统计。用于计算某一类统计数值的计算器。
ConditionalDensityEstimator
FixedFrameRateEstimator
NestableLoadProfileEstimator
Accumulator
累加器的意思。用来缓存累加的中间计算结果,并提供读取通道。
AbstractAccumulator
StatsAccumulator
TopFrequencyAccumulator
Tracker
一般用于记录日志或者监控值,通常用于apm中。
VelocityTracker
RocketTracker
MediaTracker
内存管理类
Allocator
与存储相关,通常表示内存分配器或者管理器。如果你得程序需要申请有规律得大块内存,allocator是你得不二选择。
AbstractByteBufAllocator
ArrayAllocator
RecyclingIntBlockAllocator
Chunk
表示一块内存。如果你想要对一类存储资源进行抽象,并统一管理,可以采用它。
EncryptedChunk
ChunkFactory
MultiChunk
Arena
英文是舞台、竞技场的意思。
由于Linux把它用在内存管理上发扬光大,它普遍用于各种存储资源的申请、释放与管理。为不同规格的存储chunk提供舞台,好像也是非常形象的表示。
BookingArena
StandaloneArena
PoolArena
Pool
表示池子。内存池,线程池,连接池,池池可用。
ConnectionPool
ObjectPool
MemoryPool
网络类
Packet
通常用于网络编程中的数据包。
DhcpPacket
PacketBuffer
Protocol
同样用户网络编程中,用来表示某个协议。
RedisProtocol
HttpProtocol
Encoder、Decoder、Codec
编码解码器
RedisEncoder
RedisDecoder
RedisCodec
Request,Response
一般用于网络请求的进和出。
其他
Util,Helper
都表示工具类,Util一般是无状态的,Helper以便需要创建实例才能使用。但是一般没有使用Tool作为后缀的。
HttpUtil
TestKeyFieldHelper
CreationHelper
Mode,Type
看到mode这个后缀,就能猜到这个类大概率是枚举。它通常把常见的可能性都列到枚举类里面,其他地方就可以引用这个Mode。
OperationMode
BridgeMode
ActionType
Invoker,Invocation
invoker是一类接口,通常会以反射或者触发的方式,执行一些具体的业务逻辑。
通过抽象出invoke方法,可以在invoke执行之前对入参进行记录或者处理;在invoke执行之后对结果和异常进行处理,是AOP中常见的操作方式。
MethodInvoker
Invoker
ConstructorInvocation
Initializer
如果你的应用程序,需要经过大量的初始化操作才能启动,那就需要把它独立出来,专门处理初始化动作。
MultiBackgroundInitialize
ApplicationContextInitializer
Feture,Promise
它们都是用在多线程之间的,进行数据传递。
Feture相当于一个占位符,代表一个操作将来的结果。一般通过get可以直接阻塞得到结果,或者让它异步执行然后通过callback回调结果。
Promise是为了让代码变得优美而存在的。
Selector
根据一系列条件,获得相应的同类资源。它比较像Factory,但只处理单项资源。
X509CertSelector
NodeSelector
Reporter
用来汇报某些执行结果。
ExtentHtmlReporter
MetricReporter
Constants
一般用于常量列表。
Accessor
封装了一系列get和set方法的类。
Accessor类一般是要通过计算来完成get和set,而不是直接操作变量。这适合比较复杂的对象存取服务。
ComponentAccessor
StompHeaderAccessor
Generator
生成器,一般用于生成代码,生成id等。
CodeGenerator
CipherKeyGenerator
管理类
Starter
启动器,一般作为程序启动器使用
MacosApplicationStarter
TaskStarter
Bootstrap
启动器的基类,通俗来说,可以认为是main函数的入口。
AbstractBootstrap
ServerBootstrap
Processor
某一类功能的处理器,用来表示某个处理过程,是一系列代码片段的集合。
CompoundProcessor
BinaryComparisonProcessor
DefaultValueProcessor
Manager
对有生命状态的对象进行管理,通常作为某一类资源的管理入口。
AccountManager
DevicePolicyManager
TransactionManager
g
表示持有某个或者某类对象的引用,并可以对其进行统一管理。多见于不好回收的内存统一处理,或者一些全局集合容器的缓存。
QueryHolder
InstructionHolder
ViewHolder
Factory
工厂模式的命名
SessionFactory
ScriptEngineFactory
LiveCaptureFactory
Provider
Provider = Strategy + Factory Method。它更高级一些,把策略模式和方法工厂揉在了一块,让人用起来很顺手。
Provider一般是接口或者抽象类,以便能够完成子实现。
AccountFeatureProvider
ApplicationFeatureProviderImpl
CollatorProvider
Registrar
注册并管理一系列资源。
ImportServiceRegistrar
IKryoRegistrar
PipelineOptionsRegistrar
Engine
一般是核心模块,用来处理一类功能。引擎是个非常高级的名词,一般的类是没有资格用它的。
ScriptEngine
DataQLScriptEngine
C2DEngine
Service
某个服务。
PersistenceService
IntegratorServiceImpl
Task
某个任务。通常是个runnable
WorkflowTask
FutureTask
ForkJoinTask
过滤检测类
Pipeline,Chain
一般用在责任链模式中。
通过将某个处理过程加入到责任链的某个位置中,就可以接收前面处理过程的结果,强制添加或者改变某些功能。
ChildPipeline
DefaultResourceTransformerChain
FilterChain
Filter
过滤器,用来筛选某些满足条件的数据集,或者在满足某些条件的时候执行一部分逻辑。如果和责任链连接起来,则通常能够实现多级的过滤。
FilenameFilter
AfterFirstEventTimeFilter
ScanFilter
Interceptor
拦截器,其实和Filter差不多。
HttpRequestInterceptor
Evaluator
英文里是评估器的意思。可用于判断某些条件是否成立,一般内部方法evaluate会返回bool类型。
比如你传递进去一个非常复杂的对象,或者字符串,进行正确与否的判断。
ScriptEvaluator
SubtractionExpressionEvaluator
StreamEvaluator
Detector
探测器。用来管理一系列探测性事件,并在发生的时候能够进行捕获和响应。比如Android的手势检测,温度检测等。
FileHandlerReloadingDetector
TransformGestureDetector
ScaleGestureDetector
结构类
Cache
缓存。大块的缓存。常见的缓存算法有LRU、LFU、FIFO等。
LoadingCache
EhCacheCache
Buffer
buffer是缓冲,不同于缓存,它一般用在数据写入阶段。
ByteBuffer
RingBuffer
DirectByteBuffer
Composite
将相似的组件进行组合,并以相同的接口或者功能进行暴露,使用者不知道这到底是一个组合体还是其他个体。
CompositeData
CompositeMap
ScrolledComposite
Wrapper
用来包装某个对象,做一些额外的处理,以便增加或者去掉某些功能。
IsoBufferWrapper
ResponseWrapper
MavenWrapperDownloader
Option,Param,Attribute
用来表示配置信息。
SpecificationOption
SelectOption
AlarmParam
ModelParam
Tuple
元组的概念。由于Java中缺乏元组结构,我们通常会自定义这样的类。
Aggregator
聚合器,可以做一些聚合计算。比如分库分表中的sum,max,min等聚合函数的汇集。
BigDecimalMaxAggregator
PipelineAggregator
TotalAggregator
Iterator
迭代器。可以实现Java的迭代器接口,也可以有自己的迭代方式。在数据集很大的时候,需要进行深度遍历,迭代器可以说是必备的。
使用迭代器还可以在迭代过程中安全的删除某些元素。
BreakIterator
StringCharacterIterator
Batch
某些可以批量执行的请求或者对象。
SavedObjectBatch
BatchRequest
Limiter
限流器,使用漏桶算法或者令牌桶来完成平滑的限流。
DefaultTimepointLimiter
RateLimiter
TimeBasedLimiter
常见设计模式类
Strategy
将抽象部分与它的实现部分分离,使它们都可以独立地变化。策略模式。相同接口,不同实现类,同一方法结果不同,实现策略不同。
RemoteAddressStrategy
StrategyRegistration
AppStrategy
Adapter
将一个类的接口转换为客户希望的另一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类一起工作。
ExtendedPropertiesAdapter
ArrayObjectAdapter
CardGridCursorAdapter
Action,Command
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。
用来表示一系列动作指令,用来实现命令模式,封装一系列动作或者功能。Action一般用在UI操作上,后端框架可以无差别的使用。
DeleteAction
BoardCommand
Event
表示一系列事件。一般的,在语义上,Action,Command等,来自于主动触发;Event来自于被动触发。
ObservesProtectedEvent
KeyEvent
Delegate
代理或者委托模式。委托模式是将一件属于委托者做的事情,交给另外一个被委托者来处理。
LayoutlibDelegate
FragmentDelegate
Builder
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
JsonBuilder
RequestBuilder
Template
模板方法类的命名。定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。
模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
JDBCTemplate
Proxy
代理模式。为其他对象提供一种代理以控制对这个对象的访问。
ProxyFactory
SlowQueryProxy
解析类
Converter,Resolver
转换和解析。一般用于不同对象之间的格式转换,把一类对象转换成另一类。
注意它们语义上的区别,一般特别复杂的转换或者有加载过程的需求,可以使用Resolver。
DataSetToListConverter
LayoutCommandLineConverter
InitRefResolver
MustacheViewResolver
Parser
用来表示非常复杂的解析器,比如解析DSL。
SQLParser
JSONParser
Customizer
用来表示对某个对象进行特别的配置。由于这些配置过程特别的复杂,值得单独提取出来进行自定义设置。
ContextCustomizer
DeviceFieldCustomizer
Formatter
格式化类。主要用于字符串、数字或者日期的格式化处理工作。
DateFormatter
StringFormatter
传播类
Context
AppContext
ServletContext
ApplicationContext
Propagator
传播,繁殖。用来将context中传递的值进行复制,添加,清除,重置,检索,恢复等动作。
通常,它会提供一个叫做propagate的方法,实现真正的变量管理。
TextMapPropagator
FilePropagator
TransactionPropagator
0 条评论
下一页