用途:在实现业务逻辑入口点时,优先选择顶层函数而非类或对象。顶层函数指定义在模块作用域、不在类或对象内部的函数,是入口点最简单的代码形态:一个函数、一个模块、无包装。
适用场景:需要新建业务逻辑入口点并在顶层函数、类、对象间做选择;把单个入口函数无明确理由地包进类或对象;仅把类或对象当作一个公开方法加依赖注入的容器,而用函数参数或闭包也能实现。
规则:默认每个业务逻辑入口点用一个顶层函数,并将其导出为模块的唯一公开入口;依赖可用函数参数、闭包或模块导入传递。仅在技术栈使其成为自然选择时才用类或对象,例如语言要求用类做依赖注入且无惯用函数替代、框架要求用类或对象做注册/路由/生命周期管理、项目已一致使用类且改用函数会带来不一致或摩擦。不要仅为“有个类”而包装函数:只有一个公开方法、构造函数仅赋依赖、无有意义状态的类本质上就是函数。
类适用情形:语言不支持顶层函数作为一等模块导出;依赖注入框架要求基于类注册且无惯用函数适配;项目已约定入口点用类;入口点确实需要跨生命周期管理内部状态。此时用只有一个公开方法的类,遵循每模块一个入口点。
使用方式:先检查技术栈与现有入口点写法;识别仅有一个公开方法、构造函数只赋依赖、无内部状态的类作为转换候选;编写或修改时显式传递依赖。不要仅为未来可扩展性引入类,可先保持更简单的函数形态,需要时再重构。
限制:若技术栈要求或强烈偏好类,或改用函数会引入摩擦或不一致,则不应强行使用顶层函数。本资料未提供具体安装命令、运行步骤或收费信息。