3.15. Converting Constructors to Factory Methods
Problem
You want to convert a constructor to a factory method.
Solution
In Eclipse 3.0, select a constructor declaration or a call to the constructor in the JDT editor, and then select Refactoring→ Introduce Factory.
Tip
This is an Eclipse 3.0-only solution. No equivalent solution exists for versions of Eclipse prior to 3.0.
Discussion
Eclipse 3.0 enables you to convert constructors into factory methods. To do that, you select a constructor declaration or a call to the constructor and then select Refactoring→ Introduce Factory.
For example, say you had this call to a class’s constructor:
public class DisplayApp {
private String text;
public static void main(String[] args) {
DisplayApp DisplayApp = new DisplayApp("Hello");
}
public DisplayApp(String text) {
super( );
this.text = text;
}
}Selecting the constructor call and then selecting
Refactoring→ Introduce Factory opens the Introduce Factory
dialog. Here, Eclipse 3.0 will suggest the factory name
createDisplayApp. Click OK to accept that name.
Eclipse then creates that new factory method, replaces the call to
the constructor with a call to that method, and makes the original
constructor private:
public class DisplayApp {
private String text;
public static void main(String[] args) {
DisplayApp DisplayApp = createDisplayApp("Hello");
}
public static DisplayApp createDisplayApp(java.lang.String text) {
return new DisplayApp(text);
}
/**
* @param text
*/
private DisplayApp(String text) {Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access