//获取A1Impl1实例
A instance = Factory.createA(1);
//获取A2Impl实例
A instance = Factory.createA(2);
public interface A{
void a();
}
public class A1Impl implements A{
public void a(){...}
}
public class A2Impl implements A{
public void a(){...}
}
public interface AFactory{
A createA();
}
public class A1ImplFactory implements AFactory{
public A createA(){
return new A1Impl();
}
}
public class A2ImplFactory implements AFactory{
public A createA(){
return new A2Impl();
}
}
//创建A1Impl实例
AFactory factory = new A1ImplFacory();
facory.createA();
//创建A2Impl实例
AFactory factory = new A2ImplFactory();
factory.createA();
//原始方式
A a = new A1Impl();
//简单工厂模式
A a = Factory.createA(1);
//工厂方法模式
AFactory factory = new A1ImplFactory();
A a = factory.createA();
public interface A{
void a();
}
public interfaceB{
void b();
}
public class A1Impl implements A{
public void a(){...}
}
public class A2Impl implements A{
public void a(){...}
}
public class B1Impl implements B{
public void b(){...}
}
public class B1Impl implements B{
public void b(){...}
}
public interface AFactory{
A createA();
}
public class A1ImplFactory implements AFactory{
public A createA(){
return new A1Impl();
}
}
public class A2ImplFactory implements AFactory{
public A createA(){
return new A2Impl();
}
}
public interface BFactory{
B createBB();
}
public class B1ImplFactory implements BFactory{
public B createA(){
return new B1Impl();
}
}
public class B2ImplFactory implements BFactory{
public B createA(){
return new B2Impl();
}
}
public interface Factory{
A createA();
B createB();
}
public class XFactory implements Factory(){
public A createA(){
return new A1Impl();
}
public B createB(){
return new B1Impl();
}
}
public class YFactory implements Factory(){
public A createA(){
return new A2Impl();
}
public B createB(){
return new B2Impl();
}
}
//创建X组产品
Factory factory = new XFactory();
A a = factory.createA();
B b = factory.createB();
//创建Y组产品
Factory factory = new YFactory();
A a = factory.createA();
B b = factory.createB();