升格 / 降格:一种关注成员生命周期的重构方式

升格 / 降格:一种关注成员生命周期的重构方式

  在日常开发中,我们经常需要调整变量、方法、类的作用域和生命周期。传统的重构术语,如“抽象”“封装”“内聚”“解耦”等,主要从结构关系描述代码优化。但还有一个重要维度常被忽略——成员在系统中的层级是否合适。

  为了解释这一点,我提出两个术语:升格降格。该名词源于电影摄影行业。因其言简意赅,无法比拟的语义表达,我将其借用于编程行业。

  它们的目的,是让重构动作表达得更直接:把成员放回它应该待的地方


什么是“升格”

升格:当一个成员所在层级太低,导致难以复用、难以管理,需要提升到更高层级。

典型场景包括:

1.局部变量需要在多个方法使用
2.局部逻辑上升为类级或模块级
3.零散逻辑提炼为独立组件

升格的本质是:扩大成员的生命周期和影响范围,让它成为上层知识的一部分


什么是“降格”

降格:当某个成员身处的层级过高,却没有必要承担那么大的影响范围,需要缩回到更局部的层级

常见场景包括:

1.类字段只被一个方法使用
2.全局变量本质是局部上下文信息
3.模块承担了过高的职责

降格的本质是:缩小成员的生命周期,让结构更聚合、更简洁。


实例说明

示例:局部变量升格为类字段

void Update()
{
    float speed = 5f;
    Move(speed);
}

如果 speed 在多个方法使用,可以升格为类字段:

Class
{
    private float speed = 5f;
    void Update()
    {
        Move(speed);
    }
}

示例:类字段降格为局部变量

private int tempResult;

void Calculate()
{
    tempResult = ...
}

只在单个方法使用,应降格:

void Calculate()
{
    int tempResult = ...
}

升格 / 降格作为重构动作的意义

  与传统术语相比:意图更明确,沟通更快.可直接用于 PR、Review、文档.不需要额外讲复杂理论,是一种轻量、直观的重构描述方式。

posted @ 2025-12-10 14:23  Lin*Mu  阅读(0)  评论(0)    收藏  举报