一、什么是工厂模式

讲解工厂模式之前,我们先来了解一下工厂是干什么的。顾名思义,工厂就是集中高效的生产商品。也就是说,在编程中,工厂模式,就是效仿工厂,进行集中、高效实例化对象。(实例化就是生产商品)

二、简单工厂模式小案例

首先,我们先来确定一下案例的流程

1. 创建一个工厂;

2.工厂要生产一些皮制品;

3. 皮制品包括钱包和大衣;

4. 找个消费者来消费。

1. 创建一个工厂

package com.practice.basic.factorymodel;public class Factory {public static Skin getName(String name){//如果名称为wallet,则new一个walletif(name.equals("wallet")){return new Wallet("wallet",500);}else if(name.equals("coat")){return new Coat("coat",999);}elsereturn null;}
}

皮制品要遵守一定的规范——要有名字和价格:

package com.practice.basic.factorymodel;public interface Skin {//提供2个方法:名称与价格public void name();public void price();
}

皮革制品:钱包

package com.practice.basic.factorymodel;public class Wallet implements Skin {private String name;private int price;public Wallet(String name,int price){this.name = name;this.price = price;}//显示wallet名字public void name() {System.out.println("name is:"+name);}//显示wallet价格public void price() {System.out.println("price is:"+price);}}

皮革制品:大衣

package com.practice.basic.factorymodel;public class Coat implements Skin {private String name ;private  int price;public Coat(String name,int price){this.name = name;this.price = price;}//显示coat名字public void name() {System.out.println("name is:"+name);}//显示coat价格public void price() {System.out.println("price is:"+price);}
}

消费者:

package com.practice.basic.factorymodel;public class Consumer {public static void main(String[] args) {//实现接口的向上转型Skin wallet = Factory.getName("wallet");wallet.name();wallet.price();Skin coat = Factory.getName("coat");coat.name();coat.price();}
}

项目目录结构如下:

运行结果如下:

快速理解什么是工厂模式(简单工厂模式)相关推荐

  1. JavaScript 设计模式核⼼原理与应⽤实践 之 创建型:工厂模式·简单工厂——区分“变与不变”

    JavaScript 设计模式核⼼原理与应⽤实践 之 创建型:工厂模式·简单工厂--区分"变与不变" 先来说说构造器 在介绍工厂模式之前,为了辅助大家的理解,我想先在这儿给大家介绍 ...

  2. 工厂模式--简单工厂模式--抽象工厂模式

    工厂模式 作用:实现创建者与调用者的分离 简单工厂模式.工厂方法模式.抽象工厂模式,都是属于创建型设计模式.严格上来说,简单工厂模式不属于23设计模式之一,因为它违背了开闭原则. ========== ...

  3. 设计模式-创建型模式-简单工厂模式

    工程地址:设计模式-简单工厂源码-C++文档类资源-CSDN下载C++设计模式-创建型模式-简单工厂模式源码更多下载资源.学习资料请访问CSDN下载频道.https://download.csdn.n ...

  4. c++switch实现猜拳_策略模式+简单工厂+注解消除 if-else/switch-case

    消除代码中的 if-else/switch-case 在很多时候,我们代码中会有很多分支,而且分支下面的代码又有一些复杂的逻辑,相信很多人都喜欢用 if-else/switch-case 去实现.做的 ...

  5. 创建型模式 简单工厂模式

    创建型模式 简单工厂模式 /*** 创建型模式 简单工厂模式* 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式.通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类.** ...

  6. 1.0 工厂模式-简单工厂

    简介 工厂模式(Factory Pattern)是 Java中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式.将创建对象的过程延迟到子类,分为简单工厂,工厂方法 ...

  7. 跨服务同步数据(MYSQL),@Scheduled定时任务,HttpClient分批发送数据,JSONobject,策略模式+简单工厂,异步@Async+CompletableFuture使用

    目录 1.实现远程post请求 下面首先创建HttpClient用来实现远程post请求 2.发送数据 接下来就是将获取的数据(SyncDataParam )通过http请求方式发送给另一个服务(ap ...

  8. 策略模式+简单工厂之旅游出行策略与门票折扣案例

    文章目录 策略模式+简单工厂 (1)旅游出行策略(飞机,高铁,大巴,骑行,徒步至少两种出行方式) (2)门票折扣 策略模式+简单工厂 (1)旅游出行策略(飞机,高铁,大巴,骑行,徒步至少两种出行方式) ...

  9. 设计模式--静态工厂、简单工厂方法案例分析

    简介 1.学习本篇文章,了解简单工厂设计模式的使用场景. 2.如何使用简单工厂模式. 3.简单工厂模式能解决什么问题? 场景 现在有一家外卖小店需要从生产一份外卖开始进行考虑设计,当客户在网上点出不同 ...

  10. Android工厂设计模式(简单工厂,工厂方法,抽象工厂,BitmapFactory简单工厂分析,Retrofit抽象工厂分析)

    文章目录 创建型设计模式(简单工厂,工厂方法,抽象工厂) 一.简单工厂模式 引出简单工厂模式 二.工厂方法模式 三.抽象工厂模式 Android源码中用到的工厂模式举例 一.BitmapFactory ...

最新文章

  1. python实现终端3维数据可视化
  2. Django(models中字段+参数)
  3. Dom方法,解析XML文件
  4. Knative Serving 进阶: Knative Serving SDK
  5. python测试网站功能_Python检测网站链接是否已存在
  6. Maximum Xor Secondary CodeForces - 281D (单调栈)
  7. 华容道与数据结构 (续 3)
  8. python中时间的处理
  9. 仔细看看Javascript中的逻辑与()和逻辑或(||)
  10. idea快捷键 java
  11. 郭盛华:互联网安全可能是下一个热门投资主题
  12. Java毕设项目-社区居民健康档案管理系统
  13. 新浪股权分散是把双刃剑
  14. NDoc - .NET 代码文档生成器
  15. 微服务架构深度解析与最佳实践-第一部分:微服务发展历程和定义
  16. lcb2板服务器状态说明,西子奥的斯服务器LCB2RCB2服务器使用[技术专攻]
  17. linux查看pid的用户名,在Linux中用Pstree命令及显示PID和PGID,显示命令行参数及突出显示...
  18. TexturePacker导入unity后图片还是显示成整图
  19. java 反编译器源码分析
  20. 痞子衡嵌入式:i.MXRT连接特殊Octal Flash时(OPI DTR模式下反转字节序)下载与启动注意事项(以MX25UM51245为例)...

热门文章

  1. mjpg-streamer Unable to set format错误
  2. 长沙公积金可以贷款买二手房吗?
  3. 拼图游戏--更改项目后的需求分析
  4. muduo源码分析之Buffer
  5. 动态网页设计(ASP)期末复习总结03 asp六大基本对象
  6. 关于微型计算机原理的文献,微机原理综述论文.doc
  7. [ Jackson ] 简单使用
  8. vim编辑器报错:E325:ATTENTION
  9. js 如何将汉字转换成拼音
  10. 调研分析-全球与中国三硼酸锂(LBO)晶体市场现状及未来发展趋势