概念
工厂设计模式是java23中设计模式中之一,在实际开发中是最常用的模式之一也是非常经典的模式之一, 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。
分类:
- 简单工厂模式(Simple Factory)
- 工厂方法模式(Factory Method)
- 抽象工厂(Abstract Factory)
第一:简单工厂模式
所谓简单工厂方法模式,就是为目标类创建一个工厂,当有多个目标实现的时候,在这个工厂内部进行逻辑判断来根据条件创建不同的目标实例。
简单例子实现步骤:
以拿动物来比例
1.创建一个基类animal
/**
* 创建一个统一的接口
* */
public interface Animal {
void shout();
}
2.实现类
/**
* 创建一个接口的实现类
* */
public class Cat implements Animal {
@Override
public void shout() {
System.out.println("猫在叫~");
}
}
/**
* 创建一个接口的实现类
*/
public class Dog implements Animal {
@Override
public void shout() {
System.out.println("狗在叫~~");
}
}
3.生产动物的工厂
/**
* 创建一个工厂生产类
*/
public class AnimalFactory {
public Animal getAnimal(String type) {
if ("cat".equalsIgnoreCase(type)) {
return new Cat();
} else if ("dog".equalsIgnoreCase(type)) {
return new Dog();
} else {
return null;
}
}
}
4.测试类
/**
* 创建一个测试类
*/
public class TestAnimal {
public static void main(String[] args) {
AnimalFactory animalFactory = new AnimalFactory();
// 获取 Cat 的对象,并调用它的 shout 方法
Animal cat = animalFactory.getAnimal("cat");
cat.shout();
// 获取 dog 的对象,并调用它的 shout 方法
Animal dog = animalFactory.getAnimal("dog");
dog.shout();
// 获取 其他 的对象 报错
Animal other = animalFactory.getAnimal("null");
other.shout();
}
}
输出: