简单工厂模式
- 概述:简单工厂用于根据需求,自动创建类。又叫做静态工厂。
- 有点:客户端不需要在负责对象的创建,从而明确了各个类的职责。(防止滥用)
- 缺点:这个静态工厂负责所有对象的创建,如果有新的对象增加,侯喆某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护。
public class Demo { public static void main(String[] args) { // 获取猫对象 Cat $cat = (Cat) AnimalFactory.create("cat"); $cat.eat(); // 获取狗对象 Dog $dog = (Dog) AnimalFactory.create("dog"); $dog.eat(); } } /** * 动物抽象类的简单工厂,专门负责创建Animal的子类 */ class AnimalFactory { public static Animal create(String $Name) { switch ($Name.toLowerCase()) { case "cat": return new Cat(); case "dog": return new Dog(); default: return null; } } } abstract class Animal { abstract void eat(); } class Cat extends Animal { @Override void eat() { System.out.println("猫吃鱼"); } } class Dog extends Animal { @Override void eat() { System.out.println("狗吃肉"); } }