Product.java:
package gendwang.cisoco.com;
public interface Product
{
public String getType();
}
ConcreteProduct1.java:
package gendwang.cisoco.com;
public class ConcreteProduct1 implements Product
{
public ConcreteProduct1()
{
}
public String getType()
{
return "ConcreteProduct1";
}
}
ConcreteProduct2.java:
package gendwang.cisoco.com;
public class ConcreteProduct2 implements Product
{
public ConcreteProduct2()
{
}
public String getType()
{
return "ConcreteProduct2";
}
}
Factory.java:
package gendwang.cisoco.com;
public class Factory
{
public static Product getInstance(String type)
{
if(type.equals("ConcreteProduct1"))
{
return new ConcreteProduct1();
}
else if(type.equals("ConcreteProduct2"))
{
return new ConcreteProduct2();
}
else
{
return null;
}
}
}
Test.java:
package gendwang.cisoco.com;
public class Test
{
public static void main(String[] args)
{
Product product1 = Factory.getInstance("ConcreteProduct1");
System.out.println("One product:" + product1.getType() + " is created");
Product product2 = Factory.getInstance("ConcreteProduct2");
System.out.println("One product:" + product2.getType() + " is created");
}
}