一、简单工厂模式
简单工厂模式属于创建型模式又叫做静态工厂方法模式。
简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
二、代码实现
共同父类
public class Animal {
public void eat() {
System.out.println("动物吃东西");
}
}
待实例化子类
public class Dog extends Animal {
public void eat() {
System.out.println("狗吃骨头");
}
}
public class Cat extends Animal {
public void eat() {
System.out.println("猫吃鱼");
}
}
简单工厂类
//简单工厂模式
public class simpleFactory {
//构造私有
private simpleFactory() {}
//创建要实例化对象
public static Animal createAnimal(String type) {
if("dog".equals(type)) {
return new Dog();
}else if ("cat".equals(type)) {
return new Cat();
}else {
return null;
}
}
}
测试类
public class test {
public static void main(String[] args) {
Animal animal=simpleFactory.createAnimal("dog");
animal.eat();
animal=simpleFactory.createAnimal("cat");
animal.eat();
}
}
结果
狗吃骨头
猫吃鱼
三、总结
优点:
①提供了专门的类来实例化对象
②提高系统灵活性
缺点:
①破坏了“开闭原则”,一旦添加新的要实例化的类,那简单工厂的类必须要改变。
②当产品很多时,简单工厂的类就会很复杂,不利于系统维护