工厂模式:
1.介绍
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。
应用实例: 您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。
优点:
1、一个调用者想创建一个对象,只要知道其名称就可以了。
2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。
3、屏蔽产品的具体实现,调用者只关心产品的接口。
注意事项:作为一种创建类模式,在任何需要生成复杂对象的地方,都可以使用工厂方法模式。有一点需要注意的地方就是复杂对象适合使用工厂模式,而简单对象,特别是只需要通过 new 就可以完成创建的对象,无需使用工厂模式。如果使用工厂模式,就需要引入一个工厂类,会增加系统的复杂度。
实现:
模式图如下:

代码实现:
-
创建一个需要实现的方法的接口
public interface ShapeImp { void show(); } -
创建实现类
public class CFX implements ShapeImp { @Override public void show() { System.out.println("这是一个长方形"); } } public class ZFX implements ShapeImp { @Override public void show() { System.out.println("这是一个正方形"); } } public class Yuan implements ShapeImp { @Override public void show() { System.out.println("这是一个圆"); } } -
创建制作工厂
public class ShapeFactory { public ShapeImp getshape(String shape){ if (shape==null){ return null; } if (shape.equals("长方形")){ return new CFX(); }else if(shape.equals("正方形")){ return new ZFX(); }else if (shape.equals("圆")){ return new Yuan(); } return null; } } -
测试
public class Mytest { public static void main(String[] args) { ShapeFactory shapefactory = new ShapeFactory(); ShapeImp yuan = shapefactory.getshape("圆"); yuan.show(); ShapeImp cfx = shapefactory.getshape("长方形"); cfx.show(); ShapeImp zf = shapefactory.getshape("正方形"); zf.show(); } }
结果:
这是一个圆
这是一个长方形
这是一个正方形
本文深入探讨了工厂模式这一设计模式的概念,介绍了其在Java中的应用,包括模式的目的、优点及实现方式。通过具体代码示例,展示了如何使用工厂模式创建对象,而不暴露创建逻辑,同时保持代码的扩展性和灵活性。
工厂模式&spm=1001.2101.3001.5002&articleId=98453300&d=1&t=3&u=4c2f4b5fd3d64e1595ecb4a2159f1a1f)
197

被折叠的 条评论
为什么被折叠?



