美文网首页
Java设计模式之简单工厂模式

Java设计模式之简单工厂模式

作者: BestbpF | 来源:发表于2018-07-25 09:58 被阅读14次

工厂模式是Java中很常用的设计模式之一,主要用来提供一种创建对象的方式,在该设计模式中,创建对象的逻辑不会暴露给用户,提供给用户的是指向所创建对象的一个共同的接口。工厂模式大致可以分为三种,简单工厂模式、工厂方法模式以及抽象工厂模式,这里我们先介绍简单工厂模式。

介绍

目的

定义一个创建对象的接口,具体创建哪个对象由用户决定后其实现类执行,将创建对象延迟到子类去执行。主要解决了接口的选择问题。

场景

当我们需要在不同条件下创建不同对象时,只需要向工厂类指定想要生成的对象,工厂类便会直接生成对应的对象。

应用实例

当你需要一辆汽车时,向工厂说出你想要车的名字就可以直接提货,不需要管该汽车是如何创建的。当你使用JDBC或者一些ORM框架去连接不同数据库时,也可以使用工厂模式去设计。

代码展示
public interface Shape {
    void draw();
}
public class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("I draw a Circle!!!");
    }
}
public class Rectangle implements Shape {
    @Override
    public void draw() {
        System.out.println("I draw a Rectangle!!!");
    }
}
public class Square implements Shape {
    @Override
    public void draw() {
        System.out.println("I draw a Square!!!");
    }
}
public class ShapeFactory {
    public static final String CIRCLE = "CIRCLE";
    public static final String SQUARE = "SQUARE";
    public static final String RECTANGLE = "RECTANGLE";

    public static Shape getShape(String type){
        Shape shape = null;

        switch (type){
            case CIRCLE :
                shape = new Circle();break;
            case SQUARE :
                shape = new Square();break;
            case RECTANGLE :
                shape = new Rectangle();break;
            default: break;
        }

        return shape;
    }
}
测试
public class Test {
    public static void main(String[] args) {

        Shape rectangle = ShapeFactory.getShape(ShapeFactory.RECTANGLE);
        rectangle.draw();

        Shape circle = ShapeFactory.getShape(ShapeFactory.CIRCLE);
        circle.draw();

        Shape square = ShapeFactory.getShape(ShapeFactory.SQUARE);
        square.draw();
    }
}
//结果
//I draw a Rectangle!!!
//I draw a Circle!!!
//I draw a Square!!!
优点
  1. 一个调用者想创建一个对象,只要知道其名称就可以了。
  2. 屏蔽产品的具体实现,调用者只关心产品的接口。
缺点

每次增加一个产品时,都需要增加一个具体类和修改工厂类,耦合度高,可扩展性差,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。

相关文章

  • Java与模式

    《JAVA与模式》之简单工厂模式《JAVA与模式》之工厂方法模式《JAVA与模式》之抽象工厂模式

  • iOS设计模式(三)之抽象工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • iOS设计模式(一)之简单工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • iOS设计模式(二)之工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • 设计模式 - 工厂模式

    概述 我们都知道Java中共有 23 种设计模式,其中工厂模式分为三种,即:简单工厂模式(不在 23 种设计模式之...

  • 《JAVA与模式》之简单工厂模式

    《JAVA与模式》之简单工厂模式 在阎宏博士的《JAVA与模式》一书中开头是这样描述简单工厂模式的:简单工厂模式是...

  • 设计模式系列-简单工厂模式

    JAVA设计模式系列: 单例模式 观察者模式 模板方法模式 简单工厂模式 定义 简单工厂模式又叫做静态工厂方法模式...

  • 工厂模式

    java设计模式-工厂模式 工厂模式: 工厂模式是java设计模式里最常用的设计模式之一。 工厂模式属于创建型模式...

  • 简单工厂模式

    Java23种设计模式--简单工厂模式 一、什么是简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态工厂方法...

  • 简单工厂模式

    Android进阶之设计模式 简单工厂模式 简单工厂模式(又叫作静态工厂方法模式), 其属于创建型设计模式,但并不...

网友评论

      本文标题:Java设计模式之简单工厂模式

      本文链接:https://www.haomeiwen.com/subject/zjgumftx.html