欢迎来到Vincentyw的博客

该来的终究会来,该走的也一定会离开。凡事都存在前因后果,因缘成熟了,果报便产生了,无法阻挡。
但是发生过了就会消失,有来就有走,一切都是过客,把握自己当下的因缘,承担起自己该承担的责任,做好眼前该做的事情,做的时候尽全力,过去便放下,放下即自在。

工厂模式之静态工厂

Factory(静态工厂)

一、静态工厂模式简介

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象

注意:

  简单工厂模式也叫静态工厂模式,就是工厂类一般是使用静态方法

  通过接收的参数的不同来返回不同的对象实例

  对于增加新产品无能为力!不修改代码的话,是无法扩展的

二、实现UML类图

 三、实现

 步骤1:创建接口

public interface Car {
     void run();
}

 步骤2:创建实现接口的实体类

public class Audi implements Car{
    @Override
    public void run() {
        System.out.println("奥迪运行");
    }
}
public class Byd implements Car{
    @Override
    public void run() {
        System.out.println("比亚迪运行");
    }
}

步骤3:创建给定信息实体类对象的简单工厂

/**
 * 简单工厂(静态工厂):用来生产同一等级结构中的任意产品
 * 增加产品,需要修改该类
 * @author yw
 */
public class CarSimpleFactory {
    
    public static Car createCar(String type) {
        Car car = null;
        if("Audi".equals(type)) {
            car = new Audi();
        }else if("Byd".equals(type)) {
            car = new Byd();
        }else {
            throw new RuntimeException("无此车");
        }
        return car;
    }
    
    public static Audi createAudiCar() {
        return new Audi();
    }
    
    public static Byd createBydCar() {
        return new Byd();
    }
}

步骤4:调用者调用

/**
 * 实现调用者和创建者的分离
 * 核心作用:实例化对象,用工厂方法代替new
 * @author yw
 * 分类:
 * 简单工厂也称之为静态工厂
 * 工厂方法
 * 抽象工厂
 */
/**
 * 无工厂--->简单工厂
 * 无工厂:调用者直接new产生实例化对象,需要了解接口和实现类
 * 简单工厂:无需了解实现类
 * 简单工厂也称为静态工厂,一般使用静态方法,通过接收不同的参数创建不同的实例对象
 * 违反了开闭原则,对于新型的产品不修改原始类,无法扩展
 */
public class FactoryDemo01 {
    public static void main(String[] args) {
        Car car = CarSimpleFactory.createCar("Audi");
        car.run();
        car = CarSimpleFactory.createBydCar();
        car.run();
    }
}

步骤5:运行程序,观察结果

奥迪运行
比亚迪运行

 

posted on 2020-03-26 20:17  VincentYew  阅读(1494)  评论(0)    收藏  举报

导航