设计模式之简单工厂模式(代码片段)

猴子特种兵 猴子特种兵     2022-11-19     739

关键词:

简单来说,工厂模式就是按照需求来返回一个类型的对象,使用工厂模式的意义就是,如果对象的实例化与代码依赖太大的话,不方便进行扩展和维护,使用工厂的目的就是使对象的实例化与主程序代码就行解耦.

1. 简单工厂模式简介
简单工厂模式(Simple Factory),又被称为"静态工厂方法模式"。它属于"创建模式"(创建对象的模式),并且是"工厂方法"模式的一种特殊实现。

工厂:工厂是简单工厂模式的核心,提供了对外接口。客户端或其它程序要获取Product对象,都是通过Factory的接口来获取的。

抽象产品:抽象产品是(许多)不同产品抽象出来的。Product可以是接口或者抽象类。

具体产品:工厂中返回的产品对象。

2. 简单工厂模式代码

 

public interface Car 
    public void run();
public class Audi implements Car
    @Override
    public void run() 
        System.out.println("奥迪在跑!");
    
public class Byd implements Car
    @Override
    public void run() 
        System.out.println("比亚迪再跑");
    
public class CarFactory 

    public static Car createCar(String type)
        if("奥迪".equals(type))
            return  new Audi();
        else if("比亚迪".equals(type))
            return new Byd();
        else
            return null;
        
    
/**
 * Created by chengbx on 2018/5/30.
 * 简单工厂模式
 */
public class ClientFactory 
    @Test
    public  void test()
       Car audi = CarFactory.createCar("奥迪");
       Car byd = CarFactory.createCar("比亚迪");
       audi.run();
       byd.run();
    

3.总结

简单工厂模式, 总结起来就是一个工厂类,一个产品接口(其实也可以是一个抽象类,甚至一个普通的父类)和一群实现了产品接口的具体产品,而这个工厂类,根据传入的参数去创造一个具体的实现类,并向上转型为接口作为结果返回。

 

设计模式之简单工厂模式(代码片段)

简单画图理解//设计模式之简单工厂模式//创建一个食物类interfaceFoodvoideat();//我今天想吃薯条或汉堡classHamburgerimplementsFood@Overridepublicvoideat()System.out.println("我吃汉堡");classFrenchFriesimplementsFood@Overridepublicvoidea 查看详情

设计模式之简单工厂模式(代码片段)

    今天学习了简单工厂模式,总结一下。    简单工厂模式的核心思想是:由一个工厂实体决定创建出哪一种产品的实例。    比较简单,因此直接上代码:  这个例子我们实现一个简单的计算器。我们先... 查看详情

设计模式之简单工厂模式(代码片段)

2018-09-16 23:50:57简单工厂模式概述  简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。    UML类图如下:     该模式中包含的角色及其职责(摘自:百度百科)   工厂(Creator)角色 ... 查看详情

设计模式之简单工厂模式(创建型)(代码片段)

定义简单工厂模式又称静态工厂模式。可以根据参数的不同返回不同类的实例。定义一个类来创建其它类的实例。角色简单工厂模式包含如下角色Factory:工厂角色Product:抽象产品角色ConcreteProduct:具体产品角色简单实例publicabst... 查看详情

设计模式从青铜到王者第五篇:创建型模式之简单工厂模式(simplefactorypattern)(代码片段)

系列文章目录文章目录系列文章目录前言一、简单工厂模式模式动机二、简单工厂模式模式定义三、简单工厂模式模式结构四、简单工厂模式时序图五、简单工厂模式代码分析六、简单工厂模式模式分析七、简单工厂模式优点八... 查看详情

设计模式之工厂模式(代码片段)

工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。简单工厂模式与工厂模式区别:  (1)简单工厂模式的优点在于工厂类中包含了必要的逻辑判断,根据客户... 查看详情

设计模式之简单工厂模式(代码片段)

简单工厂模式简单工厂模式的主要实现思路是通过一个工厂类实例化需求所需的功能类,这样做可以增加代码的可拓展性,降低耦合性。1、创建抽象类,规范子类中需要定义的方法(抽象类中的方法在子类中必须被定义)1<?ph... 查看详情

设计模式之工厂模式(代码片段)

工厂模式一、简单工厂模式1.简要概述2.模式结构3.实现代码4.优点好处5.缺点弊端6.应用场景7.应用示例二、工厂方法模式1.简要概述2.模式结构3.实现代码4.优点好处5.缺点弊端6.应用场景7.应用示例一、简单工厂模式1.简要概述简单... 查看详情

设计模式之简单工厂模式(代码片段)

简单工厂模式,也叫静态工厂模式,即由一个静态工厂类来统一创建所需要的实例对象。本例中,将主要实现加减乘除计算。第一步,定义抽象基类Operation1/**2*@authorabo3*@titleOperation4*@ProjectNameTest5*@Description:运算类的基类,定义了... 查看详情

大话设计模式之简单工厂模式(代码片段)

大话设计模式——简单工厂模式--参考自《大话设计模式》需求现在有一个需求,实现一个简单的计算器对于一般的初学者来说可能会这么实现:publicclasscalculatepublicstaticvoidmain(String[]args)Scannercin=newScanner(System.in);System.out.println(&qu... 查看详情

34面向对象设计模式之工厂模式——简单工厂模式与工厂方法模式比较(代码片段)

用下面的例子比较:  usingSystem;namespaceLearnObjectpublicclassLeiFengpublicvoidSweep()Console.WriteLine("扫地");publicvoidWash()Console.WriteLine("洗衣服");publicvoidBuyRice()Console.WriteLine("买米");publi 查看详情

设计模式回顾系列之简单工厂模式(代码片段)

简单工厂模式,需要说明的是,它并不属于GOF23种设计模式中的一种。但它却丰富了工厂模式家族,因为其简单的思想和使用方式,也有很广泛的使用简单工厂模式又称为静态工厂模式,它用来确定创建哪一种对象的实例。这种... 查看详情

设计模式之简单工厂模式(创建型)(代码片段)

模式定义简单工厂模式又称静态工厂模式。可以根据参数的不同返回不同类的实例。定义一个类来创建其它类的实例。模式角色简单工厂模式包含如下角色Factory:工厂角色Product:抽象产品角色ConcreteProduct:具体产品角色简单实... 查看详情

设计模式--简单工厂模式之在springboot中使用简单工厂模式(代码片段)

1.前言:不了解简单工厂模式请先移步:在商城中使用简单工厂。在这里主要是对springboot中使用简单工厂模式进行解析。 2.问题:什么是简单工厂:它的实现方式是由一个工厂类根据传入的参数,动态决定应该创建哪一个产... 查看详情

设计模式之抽象工厂模式(代码片段)

抽象工厂模式基本介绍1)抽象工厂模式:定义了一个interface用于创建相关或有依赖关系的对象簇,而无需指明具体的类2)抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合。3)从设计层面看,抽象工厂模式就是对简单工厂... 查看详情

大话设计模式之简单工厂模式(代码片段)

背景需求:模拟一个简单计算器。UML类图:说明:抽象类AbstractOperation有一个抽象方法getResult和两个成员变量,加减乘除分别继承AbstractOperation并实现getResult方法即可。OperationFactory是一个简单工厂方法,可根据入参实例化不同的... 查看详情

揭秘设计模式之工厂模式(代码片段)

...厂对象决定创建出哪一个产品类的实例,但它不属于GOF23种设计模式。简单工厂适用于工厂类负责创建的对象较少的场景,且客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关心。创建型模式。packagesimple;/***水果接... 查看详情

java设计模式之简单工厂模式(代码片段)

...工厂类,可以生成多个不同的产品,属于创建型设计模式,应用场景:对于产品种类相对较少的情况下,考虑使用简单工厂模式可以方便的创建所需的产品。使用简单工厂模式的用户只需要传入工厂类的参数&#... 查看详情