如何避免将所有类都命名为 <WhatEver>Manager
如何避免将所有类都命名为Manager
技术背景
在软件开发中,为类命名是一项重要且具有挑战性的任务。很多时候,开发者习惯使用 Manager
、Helper
和 Util
等通用词汇来命名类,但这可能导致类名缺乏明确的语义,难以准确传达类的具体职责。因此,寻找合适的类命名方式,避免过度使用 Manager
这样的通用词汇,是提高代码可读性和可维护性的关键。
实现步骤
参考已有框架命名
可以参考 .NET
、Java
和 Android
等框架中的命名方式。例如,在 .NET
框架中,常见的后缀有 Builder
、Writer
、Reader
、Handler
和 Container
等,它们都有特定的语义。
分析常用后缀
Builder
:使用一些参数来构造特定类型的实例,通常是一次性使用的。如果需要重复创建对象,建议使用Factory
;如果负责创建多个不同类型的对象,则使用Factories
。Writer
:将变量写入某个对象。Reader
:将某个对象读取为变量。Handler
:用于处理特定情况或事务。Container
:可以将对象放入其中。
考虑设计模式
根据所使用的设计模式来命名类。例如,使用工厂模式时,可以使用 Factory
后缀;使用策略模式时,可以使用 Policy
后缀。
保持一致性
在代码的可见范围内保持命名的一致性。如果公司有命名规范,遵循公司的规范;如果没有,可以创建自己的命名规范,并与同事交流和反馈。
核心代码(示例)
以下是一些使用不同后缀命名类的示例代码:
1 |
|
最佳实践
- 使用通用且明确的后缀:选择如
Builder
、Factory
、Writer
等具有明确语义的后缀,使类名更具可读性。 - 遵循设计模式:根据系统所使用的设计模式来命名类,例如使用工厂模式时使用
Factory
后缀。 - 保持一致性:在整个项目中保持命名规范的一致性,方便其他开发者理解和维护代码。
- 避免使用隐喻命名:尽量避免使用如 “nanny”、“shepherd” 等基于隐喻的命名,因为这些命名可能因文化或个人理解的不同而产生歧义。
常见问题
过度使用通用词汇
如果过度使用 Manager
、Helper
等通用词汇,会导致类名缺乏明确的语义,难以准确传达类的具体职责。解决方法是参考已有框架的命名方式,使用更具体的后缀。
命名不一致
在项目中如果命名规范不一致,会给其他开发者带来困扰。解决方法是制定统一的命名规范,并在团队中推广和遵循。
隐喻命名带来的歧义
使用基于隐喻的命名可能会导致不同开发者对类的职责理解不一致。解决方法是避免使用隐喻命名,选择更直接、明确的命名方式。
如何避免将所有类都命名为 <WhatEver>Manager
https://119291.xyz/posts/how-to-avoid-calling-everything-a-what-ever-manager/