Java
buttons
buttons/Button.java: Common product interface
package refactoring_guru.factory_method.example.buttons;
/**
* Common interface for all buttons.
*/
public interface Button {
void render();
void onClick();
}buttons/HtmlButton.java: Concrete product
package refactoring_guru.factory_method.example.buttons;
/**
* HTML button implementation.
*/
public class HtmlButton implements Button {
public void render() {
System.out.println("<button>Test Button</button>");
onClick();
}
public void onClick() {
System.out.println("Click! Button says - 'Hello World!'");
}
}buttons/WindowsButton.java: One more concrete product
factory
factory/Dialog.java: Base creator
factory/HtmlDialog.java: Concrete creator
factory/WindowsDialog.java: One more concrete creator
Demo.java: Client code
OutputDemo.txt: Execution result (HtmlDialog)
OutputDemo.png: Execution result (WindowsDialog)
Last updated