工厂方法
工厂方法模式:
模式定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod 使得一个类的实例化延迟到子类
package com.vn.factory; /** * @author VN */ public abstract class BeanFacory { /** * 工厂方法 */ public abstract Product createProduct(); public Product getObject() { Product product = createProduct(); // TODO: 具体逻辑代码 return product; } }
package com.vn.factory.impl; import com.vn.factory.BeanFacory; import com.vn.factory.Product; /** * @author VN */ public class UrlBeanFactory extends BeanFacory { @Override public Product createProduct() { // TODO: 逻辑代码 return new UrlProduct(); } }
package com.vn.factory.impl; import com.vn.factory.Product; import lombok.extern.slf4j.Slf4j; /** * @author VN */ @Slf4j public class UrlProduct implements Product { @Override public void print() { log.info("UrlProduct-print"); } }
package com.vn.factory; /** * @author VN */ public interface Product { /** * 打印 */ void print(); }
package com.vn; import com.vn.factory.BeanFacory; import com.vn.factory.Product; import com.vn.factory.impl.UrlBeanFactory; import com.vn.single.*; import org.junit.jupiter.api.Test; import java.io.*; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; public class FactoryTest { /** 测试---工厂模式 */ @Test public void factoryTest() { BeanFacory factory = new UrlBeanFactory(); Product product = factory.getObject(); product.print(); } }
简单工厂

浙公网安备 33010602011771号