简单工厂模式概述:又叫静态工厂方法模式,定义一个具体的工厂类负责创建一些类的实例。
工厂类的优点:客户端不需要负责类的创建,从而明确类的职责。
缺点:工厂类负责创建类的对象,从而在有新的对象增加时,或者一些类的创建比较复杂时,导致工厂类需要不停的修改,增加维护的难度。
简单例子:
动物抽象类:
public abstract class Animal{
public abstract void eat();
}
狗类:
public class Dog extends Animal{
public void eat(){
System.out.println(“狗爱吃肉骨头”);
}
}
猫类:
public class Cat extends Animal{
public void eat(){
System.out.println(“猫爱吃鱼”);
}
}
工厂类:
public class AnimalFactory{
private AnimalFactory();
public static Animal crateAnimal(string type){
if ( type.equeals(“dog”) ){
return new Dog();
}else if (type.equals(“cat”)) {
return new Cat();
}else {
return null;
}
}
}
测试类:
public class AnimalTest{
public static void main(String[] args){
Animal a = AnimalFactory.createAnimal(“dog”);
if (a!=null){
a.eat();//狗爱吃肉骨头
}
a = AnimalFactory.createAnimal(“cat”);
if (a!= null){
a.eat();//猫爱吃鱼
}
}
}