Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public enum ButtonType {
- WIN, LINUX, MAC
- }
- public interface Button {
- ButtonType getButtonType();
- void actionListener();
- }
- public class LinuxButton implements Button {
- @Override
- public ButtonType getButtonType() {
- return ButtonType.LINUX;
- }
- @Override
- public void actionListener() {
- System.out.println("Linux Button created");
- }
- }
- public class WinButton implements Button {
- @Override
- public ButtonType getButtonType() {
- return ButtonType.WIN;
- }
- @Override
- public void actionListener() {
- System.out.println("Window Button Created");
- }
- }
- public class MacButton implements Button {
- @Override
- public ButtonType getButtonType() {
- return ButtonType.MAC;
- }
- @Override
- public void actionListener() {
- System.out.println("Mac Button Created");
- }
- }
- public interface ButtonFactory {
- ButtonFactory getButtonFactory();
- Button createButton();
- }
- public class LinuxButtonFactory implements ButtonFactory {
- @Override
- public ButtonFactory getButtonFactory() {
- return this;
- }
- @Override
- public Button createButton() {
- System.out.println("creating Linux Button");
- return new LinuxButton();
- }
- }
- public class WinButtonFactory implements ButtonFactory {
- @Override
- public ButtonFactory getButtonFactory() {
- return this;
- }
- @Override
- public Button createButton() {
- System.out.println("creating window Button");
- return new WinButton();
- }
- }
- public class MacButtonFactory implements ButtonFactory {
- @Override
- public ButtonFactory getButtonFactory() {
- return this;
- }
- @Override
- public Button createButton() {
- System.out.println("Creating MAC Button");
- return new MacButton();
- }
- }
- public abstract class AbstractButtonFactory {
- public static ButtonFactory getButtonFactory(ButtonType bt) {
- ButtonFactory btnFactory = null;
- switch (bt) {
- case WIN:
- btnFactory = new WinButtonFactory();
- break;
- case LINUX:
- btnFactory = new LinuxButtonFactory();
- break;
- default:
- btnFactory = new MacButtonFactory();
- }
- return btnFactory;
- }
- }
- public class AbstractFactoryObjectDemo {
- public static void main(String[] args) {
- ButtonFactory factory = AbstractButtonFactory.getButtonFactory(ButtonType.LINUX);
- Button linuxButton = factory.createButton();
- System.out.println(linuxButton.getButtonType().toString());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement