简单工厂
public interface Animal(){
}
public Cat inplements Animal(){
}
public Dog inplements Animal(){
}
public class AnimalFactory(){
public Animal createAnimal(int type){
if('cat'.equalsIgnoreCase(type)){
return new Cat();
}
if('dog'.equalsIgnoreCase(type)){
return new Dog();
}
}
}
public class Client(){
public static void main(String[] args){
AnimalFactory animalFactory = new AniamlFactory();
Animal animal = animalFactory.createAnimal(Cat);
}
}
工厂方法
public interface Animal(){
}
public Cat inplements Animal(){
}
public Dog inplements Animal(){
}
public abstract class Factory{
public abstract Animal createAnimal();
}
public class DogFactory extends Factory{
public Animal createAnimal(){
return new Dog();
}
}
public class CatFactory extends Factory{
public Animal createAnimal(){
return new Cat();
}
}
抽象工厂
public interface Animal1(){
}
public interface Animal2(){
}
public Cat1 inplements Animal1(){
}
public Dog1 inplements Animal1(){
}
public Cat2 inplements Animal2(){
}
public Dog2 inplements Animal2(){
}
public abstract class Factory1{
public abstract Animal createAnimal1();
}
public class DogFactory1 extends Factory1{
public Animal1 createAnimal1(){
return new Dog1();
}
}
public class CatFactory1 extends Factory1{
public Animal1 createAnimal1(){
return new Cat1();
}
}
public abstract class Factory2{
public abstract Animal createAnimal2();
}
public class DogFactory1 extends Factory2{
public Animal2 createAnimal2(){
return new Dog2();
}
}
public class CatFactory2 extends Factory2{
public Animal2 createAnimal2(){
return new Cat2();
}
}