简单工厂模式:又名静态工厂模式,它定义一个具体的工厂负责创建一些类的实例
优点:客服端不需要再负责对象的创建,从而明确了个各类的职责
缺点:这个静态工厂类负责所有工厂的创建,如果有新的对象添加,或者某些对象的创建方式不同,
就需要不断的修改工厂,不利于后期维护
实例:写一个简单的 创建 动物的工厂模式
public class Test {
public static void main(String[] args) {
Dog d = (Dog) AnimalFactory.createAnimal("dog");
d.eat();
Cat c = (Cat) AnimalFactory.createAnimal("cat");
c.eat();
}
}
abstract class Animal{
public abstract void eat();
}
class Dog extends Animal{
@Override
public void eat() {
System.out.println("狗啃骨头");
}
}
class Cat extends Animal{
@Override
public void eat() {
System.out.println("猫吃鱼");
}
}
class AnimalFactory{
public static Animal createAnimal(String name) {
if ("dog".equals(name)) {
return new Dog();
} else if ("cat".equals(name)) {
return new Cat();
}else {
return null;
}
}
}