The Replace Constructor with Factory Method refactoring allows you to encapsulate a constructor with a static method that returns a new instance of a class.
The Factory Method pattern is a way of creating objects without specifying the exact class of object that will be created. A separate method for creating the objects is generated.
- In the editor, place the caret at a constructor.
Do one of the following:
- On the main menu, choose ReSharper | Refactor | Replace Constructor with Factory Method.
- Choose Refactor | Replace Constructor with Factory Method on the context menu.
- Press Ctrl+Shift+R, then click Replace Constructor with Factory Method.
The Replace Constructor with Factory Method dialog box opens.
Enter a name for a new factory method in the Factory method name text box.
- In the In class drop-down list, specify the fully qualified name of the class that the factory method should instantiate.
- Click Next. If no conflicts are found, the refactoring is applied immediately. Otherwise, resolve conflicts.
Consider the following example:
After replacing this public constructor with a factory method, the constructor is made private, and a new static factory method is introduced that calls the constructor:
Existing calls to the constructor are replaced with calls to the new factory method.