标签:延迟 封装 tor http rgs 创建 div new method
分析上一篇的简单工厂模式后,我们可以清楚的发现简单工厂模式的缺点,那就是当要生产的对象增加后,不得不的需改工厂类的内容,这违背了开闭原则,如果才能完善该模式尼?由于简单工厂模式只有一个工厂类,所以的生产活动都有其完成,这样导致了问题。我们可以增加工厂类,为每一个产品都增加一个对应的工厂类,即增加一个工厂接口,为生产每个产品都设计一个工厂类。
具体定义如下:工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。
//Product接口 package factoryParttern; public interface Product { void info(); } //ProductA类设计 package factoryParttern; public class ProductA implements Product{ @Override public void info() { // TODO Auto-generated method stub System.out.println("我是productA"); } } //ProductB类设计 package factoryParttern; public class ProductB implements Product{ @Override public void info() { // TODO Auto-generated method stub System.out.println("我是productB"); } } //Factory接口 package factoryParttern; public interface Factory { Product createProduct(); } //FactoryA类设计 package factoryParttern; public class FactoryA implements Factory{ @Override public Product createProduct() { // TODO Auto-generated method stub return new ProductA(); } } //FactoryB类设计 package factoryParttern; public class FactoryB implements Factory{ @Override public Product createProduct() { // TODO Auto-generated method stub return new ProductB(); } } //测试类 package factoryParttern; public class FactoryPartternTest { public static void main(String[] args) { // TODO Auto-generated method stub Factory f1 = new FactoryA(); f1.createProduct().info(); Factory f2 = new FactoryB(); f2.createProduct().info(); } }
标签:延迟 封装 tor http rgs 创建 div new method
原文地址:https://www.cnblogs.com/dazhu123/p/12346520.html