Button.java:
package gendwang.cisco.com;
public interface Button
{
public String getName();
}
UnixButton.java:
package gendwang.cisco.com;
public class UnixButton implements Button
{
public String getName()
{
return "Unix Button";
}
}
WindowsButton.java:
package gendwang.cisco.com;
public class WindowsButton implements Button
{
public String getName()
{
return "Windows Button";
}
}
Dialog.java:
package gendwang.cisco.com;
public interface Dialog
{
public String getName();
}
UnixDialog.java:
package gendwang.cisco.com;
public class UnixDialog implements Dialog
{
public String getName()
{
return "Unix Dialog";
}
}
WindowsDialog.java:
package gendwang.cisco.com;
public class WindowsDialog implements Dialog
{
public String getName()
{
return "Windows Dialog";
}
}
Factory.java:
package gendwang.cisco.com;
public interface Factory
{
public Button getButton();
public Dialog getDialog();
}
UnixFactory.java:
package gendwang.cisco.com;
public class UnixFactory implements Factory
{
public Button getButton()
{
return new UnixButton();
}
public Dialog getDialog()
{
return new UnixDialog();
}
}
WindowsFactory.java:
package gendwang.cisco.com;
public class WindowsFactory implements Factory
{
public Button getButton()
{
return new WindowsButton();
}
public Dialog getDialog()
{
return new WindowsDialog();
}
}
Test.java:
package gendwang.cisco.com;
public class Test
{
public static void main(String[] args)
{
Factory unixFactory = new UnixFactory();
Button unixButton = unixFactory.getButton();
System.out.println("One Button:" + unixButton.getName() + " is created");
Dialog unixDialog = unixFactory.getDialog();
System.out.println("One Dialog:" + unixDialog.getName() + " is created");
Factory windowsFactory = new WindowsFactory();
Button windowsButton = windowsFactory.getButton();
System.out.println("One Button:" + windowsButton.getName() + " is created");
Dialog windowsDialog = windowsFactory.getDialog();
System.out.println("One Dialog:" + windowsDialog.getName() + " is created");
}
}