简单工厂模式:
public interface product {
}
public class ProductA implements product {
public ProductA() {
System.out.println("我是产品A") ;
}
}
public class ProductB implements product {
public ProductB() {
System.out.println("我是产品B") ;
}
}
public class Simplefactory {
public static product getProduct(String type) {
if(type.equals("A"))
return new ProductA();
if(type.equals("B"))
return new ProductB();
else
return null;
}
/**
* 简单工厂模式
* @param args
*/
public static void main(String args[]) {
product a = Simplefactory.getProduct("A") ;
product b = Simplefactory.getProduct("B") ;
}
}
工厂方法:
public interface product {
}
public interface Factory {
public product create() ;
}
public class ProductA implements product {
public ProductA() {
System.out.println("我是产品A");
}
}
public class ProductB implements product {
public ProductB() {
System.out.println("我是产品B");
}
}
public class Afactory implements Factory {
public product create() {
return new ProductA();
}
}
public class Bfactory implements Factory {
public product create() {
return new ProductB();
}
}
public class Test {
/**工厂方法模式
* @param args
*/
public static void main(String[] args) {
Factory afactory = new Afactory() ;
Factory bfactory = new Bfactory() ;
product a = afactory.create() ;
product b = bfactory.create() ;
}
}
抽象工厂:
public interface productA {
}
public interface productB {
}
public interface Factory {
public productA getPa();
public productB getPb();
}
public class Pa1 implements productA {
public Pa1() {
System.out.println("我是Pa1") ;
}
}
public class Pa2 implements productA {
public Pa2() {
System.out.println("我是Pa2");
}
}
public class Pb1 implements productB {
public Pb1() {
System.out.println("我是Pb1");
}
}
public class Pb2 implements productB {
public Pb2() {
System.out.println("我是Pb2");
}
}
public class Factory1 implements Factory {
public productA getPa() {
return new Pa1();
}
public productB getPb() {
return new Pb1();
}
}
public class Factory2 implements Factory {
public productA getPa() {
return new Pa2();
}
public productB getPb() {
return new Pb2();
}
}