ReSharper 2025.2 Help

用工厂方法重构构造函数

此重构有助于为现有类实现 工厂方法模式。 如果您选择在同一个类中创建工厂方法,重构会将选定的构造函数设为私有,并将其封装到一个返回该类新实例的静态方法中。 您也可以选择在其他类中创建工厂方法。 在这种情况下,构造函数保持为 public,您可以在必要时稍后更改其访问修饰符。

如果构造函数有任何用法,它们将被替换为工厂方法调用。

在下面的示例中,我们使用重构在同一个类中添加工厂方法:

class Foo { public Foo() { // instance initialization } }
class Foo { public static Foo CreateFoo() { return new Foo(); } private Foo() { // instance initialization } }

用工厂方法替换构造函数

  1. 在编辑器中,将插入符号放在构造函数处,或在 文件结构窗口窗口中选择一个构造函数。

  2. 执行以下操作之一:

    • Control+Shift+R 然后选择 将构造函数替换为工厂方法

    • 右键单击并从上下文菜单中选择 重构 | 用工厂方法替换构造函数

    • 从主菜单中选择 ReSharper | 重构 | 转换 | 构造函数为工厂方法…

    将构造函数替换为工厂方法 对话框将打开。

  3. 指定工厂方法的名称或接受建议的名称。

  4. 默认情况下,重构会在同一个类中创建工厂方法。 如果您想在另一个类中创建工厂方法,请指定该类的完全限定名称。

  5. 要应用重构,请单击 下一步

  6. 如果未发现冲突,ReSharper 将立即执行重构。 否则,它会提示您 解决冲突

ReSharper。 用工厂方法重构构造函数

此功能在以下语言和技术中 受支持

语言:C#

语言:VB.NET

语言:C++

语言:ASP.NET

语言:Razor

语言:XAML

语言:Resx

语言:构建脚本

语言:SQL

此功能在 C# 中可用

此功能在 Visual Basic 中可用

功能在 C++ 中不可用

此功能在 ASP.NET 中不可用

此功能在 Razor 中不可用

此功能在 XAML 中不可用

此功能在资源文件中不可用

此功能在构建脚本文件中不可用

此功能在 SQL/NoSQL 文件和注入中不可用

此处提供的说明和示例针对在 C# 中使用该功能。 有关其他语言的更多信息,请参阅 语言和框架 部分中的相应主题。

最后修改日期: 2025年 9月 27日