代码命名不仅仅是为了让代码“好看”,它直接关系到代码的可读性、可维护性、可扩展性以及开发效率。良好的命名可以使开发过程更加高效,减少错误,提升代码的质量。而不规范或模糊的命名则可能导致沟通障碍、维护困难甚至潜在的错误。因此,重视代码命名并遵循命名规范,是编写高质量软件的关键一步。
管理类命名
Bootstrap,Starter
一般作为程序启动器使用,或者作为启动器的基类。通俗来说,可以认为是main函数的入口。
AbstractBootstrap
ServerBootstrap
MacosXApplicationStarter
DNSTaskStarter
Processor
某一类功能的处理器,用来表示某个处理过程,是一系列代码片段的集合。如果你不知道一些顺序类的代码怎么命名,就可以使用它,显得高大上一些。
CompoundProcessor
BinaryComparisonProcessor
DefaultDefaultValueProcessor
Manager
对有生命状态的对象进行管理,通常作为某一类资源的管理入口。
AccountManager
DevicePolicyManager
TransactionManager
Holder
表示持有某个或者某类对象的引用,并可以对其进行统一管理。多见于不好回收的内存统一处理,或者一些全局集合容器的缓存。
QueryHolder
InstructionHolder
ViewHolder
Factory
毫无疑问,工厂模式的命名,耳熟能详。尤其是Spring中,多不胜数。
SessionFactory
ScriptEngineFactory
LiveCaptureFactory
Provider
Provider = Strategy + Factory Method。它更高级一些,把策略模式和方法工厂揉在了一块,让人用起来很顺手。Provider一般是接口或者抽象类,以便能够完成子实现。
AccountFeatureProvider
ApplicationFeatureProviderImpl
CollatorProvider
Registrar
注册并管理一系列资源。
ImportServiceRegistrar
IKryoRegistrar
PipelineOptionsRegistrar
Engine
一般是核心模块,用来处理一类功能。引擎是个非常高级的名词,一般的类是没有资格用它的。
ScriptEngine
DataQLScriptEngine
C2DEngine
Service
某个服务。太简单,不忍举例。范围太广,不要滥用哦。
IntegratorServiceImpl
ISelectionService
PersistenceService
Task
某个任务。通常是个runnable
WorkflowTask
FutureTask
ForkJoinTask
传播类命名
为了完成一些统计类或者全局类的功能,有些参数需要一传到底。传播类的对象就可以通过统一封装的方式进行传递,并在合适的地方进行拷贝或者更新。
Context
如果你的程序执行,有一些变量,需要从函数执行的入口开始,一直传到大量子函数执行完毕之后。这些变量或者集合,如果以参数的形式传递,将会让代码变得冗长无比。这个时候,你就可以把变量统一塞到Context里面,以单个对象的形式进行传递。
在Java中,由于ThreadLocal的存在,Context甚至可以不用在参数之间进行传递。
AppContext
ServletContext
ApplicationContext
Propagator
传播,繁殖。用来将context中传递的值进行复制,添加,清除,重置,检索,恢复等动作。通常,它会提供一个叫做propagate的方