企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
案例代码:https://gitee.com/flymini/codes01/tree/master/spring_/com-learn-spring04 **** 我们可以使用工厂模式来简单地模拟 IoC 的实现。 <br/> 步骤如下: **1. 封装Animal接口** ```java /** * 接口就是产品规范,它定义了Animal只能有哪些行为 */ public interface Animal { public void eat(); public void sport(); } ``` **2. 封装Cat产品和Dog产品** ```java public class Cat implements Animal { @Override public void eat() { System.out.println("猫喜欢吃鱼"); } @Override public void sport() { System.out.println("猫很懒,不喜欢运动"); } } ``` ```java public class Dog implements Animal { @Override public void eat() { System.out.println("狗喜欢吃肉"); } @Override public void sport() { System.out.println("狗喜欢运动"); } } ``` **3. 创建工厂Factory** ```java public class AnimalFactory { //下面这两个常量代表:客户提供所需要对象实例的描述,负责工厂与客户进行交互 public static final String CAT = "cat"; public static final String DOG = "dog"; /** * 根据客户的描述,返回对应的产品 */ public Animal getAnimal(String str) { if (CAT.equals(str)) { return new Cat(); } else if (DOG.equals(str)) { return new Dog(); } else { return null; } } } ``` **4. 模拟调用** ```java ipublic class AnimalFactoryTest { @Test public void test() { AnimalFactory factory = new AnimalFactory(); Animal animal = null; //客户跟工厂说我要一个Cat产品,然后工厂就会生产出这个产品 animal = factory.getAnimal("cat"); animal.eat(); //猫喜欢吃鱼 animal.sport(); //猫很懒,不喜欢运动 System.out.println("\n"); animal = factory.getAnimal("dog"); animal.eat(); //狗喜欢吃肉 animal.sport(); //狗喜欢运动 } } ```