设计模式之工厂模式一简单工厂模式
工厂模式由来:
在我们创建对象的时候使用,使用new操作的。如果多个对象创建都使用new会。所以工厂模式就是用来代理new操作的一种模式。根据工厂模式由来,我们可以看出工厂模式属于创建型模式。提供一种创建对象的最佳方式。
来源:凯哥Java(kaigejava)
工厂模式主要的分类:
简单工厂模式、工厂方法模式、抽象工厂模式
简单工厂模式:
简单工厂模式不属于23中设计模式。又叫做静态工厂方法,简单工厂模式是工厂模式家族中最简单使用的一种模式。也可以理解为不同工厂模式的一个特殊实现。
如何理解?
举例:一个工厂类,一个产品的抽象类。
现实生活举例:一个面馆,可以生产多中面条。
如:面馆里面可以做的西红柿鸡蛋面、牛肉拉面、刀削面、哨子面、biangbiang面及热干面。
我们就来模拟这种场景:
我们先来看项目结构:
说明:
1:面条接口类
2:具体面条实现类
3:简单工厂类(面馆对象)
4:测试类型
我们先来看看面条接口类:
INoodlesInterface
我们在来看看,面条具体实现类--西红柿鸡蛋面类对象里面:
public class TomatoAndEggNoodles implements INoodlesInterface {
private String noodlesName;
public TomatoAndEggNoodles(){}
public TomatoAndEggNoodles(String noodlesName){
this.noodlesName = noodlesName;
}
@Override
public void noodlesdescription() {
System.out.println("大爷,您的"+this.noodlesName+"价格为:10元。");
}
}
其他具体面条实现类里面类似。这里就不一一贴出来了。
我们来看看面馆对象:
里面由三部分:
菜单部分、根据菜单序号制作面条、根据面条名称制作面条。
我们来看看根据菜单序号制作面条的:
public static INoodlesInterface makeNoodlesByMenuType(int noodletType){
switch (noodletType){
case NOODLES_TYPE_1:
return new TomatoAndEggNoodles("西红柿鸡蛋面");
case NOODLES_TYPE_2:
return new HandPulledNoodleSoupWithBeef("牛肉拉面");
case NOODLES_TYPE_3:
return new HandPulledNoodleSoupWithBeef("刀削面");
case NOODLES_TYPE_4:
return new NoodleWithPork("哨子面");
case NOODLES_TYPE_5:
return new BiangBiangNoodles("biangbiang面");
case NOODLES_TYPE_6:
return new HotAndDryNoodles("热干面");
default:
return new HotAndDryNoodles("热干面");
}
}
另一个方法类似。
查看测试类:
查看运行结果:
运行结果,达到我们预期的。
现在我们来总结下简单工厂模式:
简单工厂模式几个角色:
1:共有的抽象父类或者接口。如:司小司面馆的面条接口对象
2:继承或是实现该接口的具体子类。如:西红柿鸡蛋面、biangbiang面等
3:创建对象的简单工厂类。如:司小司的面馆
触发事件:
通过菜单的序号或者是面条名称触发工厂类制作对象的。
在来看看简单工厂模式特点:
通过一个类。是具体的类,并非接口或者抽象类的一个重要的创建方法,利用if判断语句说着是switch语句来进行判断,进而创建对应的产品。
联系凯哥--》凯哥Java(kaigejava)
个人博客:www.kaigejava.com
其中,这个重要的创建方法通常都是静态的。所以,简单工厂模式也被称之为静态工厂.
相关推荐
java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...
工厂模式是一种常用的软件设计模式,它是创建型设计模式的一种,主要解决对象的创建问题,将对象的创建过程封装起来,使得创建过程独立于使用过程。这样可以提高代码的可复用性和灵活性,同时降低了系统的耦合度。...
在软件设计模式中,工厂模式是一组非常基础且实用的设计模式,主要分为简单工厂模式、工厂方法模式和抽象工厂模式。这些模式都是为了解决对象创建的问题,通过封装对象的创建过程,使得代码更加灵活,易于扩展和维护...
简单工厂模式是软件设计模式中的一种创建型模式,它提供了一种创建对象的最佳方式。在简单工厂模式中,一个工厂类负责创建所有相关的对象,而客户端只需要知道具体的产品类型,无需了解如何创建这些对象的细节。这种...
简单工厂模式是一种静态工厂方法,它通常包含一个类,该类负责创建其他类的实例。客户端通过调用静态方法获取所需对象,而不必了解具体创建对象的逻辑。虽然简单工厂模式易于理解和实现,但它的缺点在于违反了“开...
根据提供的标题“深入浅出设计模式之工厂模式”与描述“将《Head First 设计模式》(中文版)按章节进行了分割,每章一个文件,方便大家下载”,我们可以推测出这部分内容主要关注的是设计模式中的工厂模式。...
**简单工厂模式**是软件设计模式中的一种,属于创建型模式。在Java编程中,它是一种用于创建对象的简便方法,将对象的实例化过程封装到一个单独的工厂类中,使得客户端代码无需直接调用具体类的构造函数,而是通过...
**简单工厂模式**是软件设计模式中的一种基础模式,它属于创建型模式,主要用于简化对象的创建过程。在简单工厂模式中,一个专门的工厂类负责创建对象,客户端通过调用工厂类的方法来获取所需的对象,而无需关心具体...
工厂方法模式是设计模式中的创建型模式之一,它在软件工程中扮演着非常重要的角色,尤其是在C#这样的面向对象编程语言中。工厂方法模式提供了一种封装对象创建过程的方法,使得具体的创建过程延迟到子类中进行,从而...
"工厂模式"是其中一种常用的设计模式,它提供了一种创建对象的最佳方式。在这个主题下,我们将深入探讨三种主要的工厂模式:简单工厂、工厂方法和抽象工厂。 1. **简单工厂模式**: 简单工厂模式是最基础的形式,...
简单工厂设计模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在简单工厂模式中,当创建对象时,我们不会对客户端暴露创建逻辑,而是通过一个公共接口来指向新创建的对象。这种方式有助于我们将对象的...
**工厂模式**是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,当客户端请求创建一个产品时,工厂类会负责创建这个产品。这样做的好处是隐藏了对象创建的复杂性,客户端只需要知道如何获取产品...
在给定的“设计模式资料之工厂设计模式”中,我们主要关注的是工厂设计模式,这是一种创建型设计模式,它提供了创建对象的最佳方式。在这个资料中,可能会详细解释工厂模式的概念、目的以及如何在实际编程中应用。 ...
简单工厂模式是一种创建型设计模式,它提供了一个静态方法来创建对象,而无需暴露创建逻辑。这个静态方法根据输入参数来决定返回哪个类的实例。这种方式将对象的创建与使用分离,使得代码更加简洁,易于理解和使用。...
"设计模式之工厂系列"指的是几种不同的工厂模式,它们都是面向对象设计中的重要组成部分,尤其在Java编程语言中广泛使用。工厂模式的主要目标是提供一个创建对象的抽象接口,使得系统在不指定具体实现类的情况下,...
简单工厂设计模式是其中一种创建型设计模式,它提供了一个创建对象的接口,但允许子类决定实例化哪一个类。这个接口就像一个工厂,根据输入条件生产不同类型的实例。 简单工厂模式的核心在于一个“工厂”类,这个类...
5. **简单工厂模式**:是最简单的工厂模式形式,它包含一个工厂类,根据传入的参数决定返回哪种类型的实例。虽然易于理解,但不易扩展,因为所有产品类型都硬编码在工厂类中。 以上设计模式在实际项目中有着广泛的...
在这个名为"工厂设计模式简单实例"的资料中,我们可以期待看到一个基础的工厂模式实现。 工厂模式的核心思想是定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪一个类。这样,客户端在使用时无须知道...
大话设计模式源代码之简单工厂模式 经典代码
简单工厂模式是软件设计模式中的一种创建型模式,它提供了一种创建对象的最佳方式。在简单工厂模式中,一个工厂类负责创建所有相关的或者相互依赖的对象,无需客户端代码指定具体的类,而是通过工厂方法来创建实例。...