快速理解什么是工厂模式(简单工厂模式)
一、什么是工厂模式
讲解工厂模式之前,我们先来了解一下工厂是干什么的。顾名思义,工厂就是集中高效的生产商品。也就是说,在编程中,工厂模式,就是效仿工厂,进行集中、高效实例化对象。(实例化就是生产商品)
二、简单工厂模式小案例
首先,我们先来确定一下案例的流程
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();}
}
项目目录结构如下:
运行结果如下:
快速理解什么是工厂模式(简单工厂模式)相关推荐
- JavaScript 设计模式核⼼原理与应⽤实践 之 创建型:工厂模式·简单工厂——区分“变与不变”
JavaScript 设计模式核⼼原理与应⽤实践 之 创建型:工厂模式·简单工厂--区分"变与不变" 先来说说构造器 在介绍工厂模式之前,为了辅助大家的理解,我想先在这儿给大家介绍 ...
- 工厂模式--简单工厂模式--抽象工厂模式
工厂模式 作用:实现创建者与调用者的分离 简单工厂模式.工厂方法模式.抽象工厂模式,都是属于创建型设计模式.严格上来说,简单工厂模式不属于23设计模式之一,因为它违背了开闭原则. ========== ...
- 设计模式-创建型模式-简单工厂模式
工程地址:设计模式-简单工厂源码-C++文档类资源-CSDN下载C++设计模式-创建型模式-简单工厂模式源码更多下载资源.学习资料请访问CSDN下载频道.https://download.csdn.n ...
- c++switch实现猜拳_策略模式+简单工厂+注解消除 if-else/switch-case
消除代码中的 if-else/switch-case 在很多时候,我们代码中会有很多分支,而且分支下面的代码又有一些复杂的逻辑,相信很多人都喜欢用 if-else/switch-case 去实现.做的 ...
- 创建型模式 简单工厂模式
创建型模式 简单工厂模式 /*** 创建型模式 简单工厂模式* 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式.通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类.** ...
- 1.0 工厂模式-简单工厂
简介 工厂模式(Factory Pattern)是 Java中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式.将创建对象的过程延迟到子类,分为简单工厂,工厂方法 ...
- 跨服务同步数据(MYSQL),@Scheduled定时任务,HttpClient分批发送数据,JSONobject,策略模式+简单工厂,异步@Async+CompletableFuture使用
目录 1.实现远程post请求 下面首先创建HttpClient用来实现远程post请求 2.发送数据 接下来就是将获取的数据(SyncDataParam )通过http请求方式发送给另一个服务(ap ...
- 策略模式+简单工厂之旅游出行策略与门票折扣案例
文章目录 策略模式+简单工厂 (1)旅游出行策略(飞机,高铁,大巴,骑行,徒步至少两种出行方式) (2)门票折扣 策略模式+简单工厂 (1)旅游出行策略(飞机,高铁,大巴,骑行,徒步至少两种出行方式) ...
- 设计模式--静态工厂、简单工厂方法案例分析
简介 1.学习本篇文章,了解简单工厂设计模式的使用场景. 2.如何使用简单工厂模式. 3.简单工厂模式能解决什么问题? 场景 现在有一家外卖小店需要从生产一份外卖开始进行考虑设计,当客户在网上点出不同 ...
- Android工厂设计模式(简单工厂,工厂方法,抽象工厂,BitmapFactory简单工厂分析,Retrofit抽象工厂分析)
文章目录 创建型设计模式(简单工厂,工厂方法,抽象工厂) 一.简单工厂模式 引出简单工厂模式 二.工厂方法模式 三.抽象工厂模式 Android源码中用到的工厂模式举例 一.BitmapFactory ...
最新文章
- python实现终端3维数据可视化
- Django(models中字段+参数)
- Dom方法,解析XML文件
- Knative Serving 进阶: Knative Serving SDK
- python测试网站功能_Python检测网站链接是否已存在
- Maximum Xor Secondary CodeForces - 281D (单调栈)
- 华容道与数据结构 (续 3)
- python中时间的处理
- 仔细看看Javascript中的逻辑与()和逻辑或(||)
- idea快捷键 java
- 郭盛华:互联网安全可能是下一个热门投资主题
- Java毕设项目-社区居民健康档案管理系统
- 新浪股权分散是把双刃剑
- NDoc - .NET 代码文档生成器
- 微服务架构深度解析与最佳实践-第一部分:微服务发展历程和定义
- lcb2板服务器状态说明,西子奥的斯服务器LCB2RCB2服务器使用[技术专攻]
- linux查看pid的用户名,在Linux中用Pstree命令及显示PID和PGID,显示命令行参数及突出显示...
- TexturePacker导入unity后图片还是显示成整图
- java 反编译器源码分析
- 痞子衡嵌入式:i.MXRT连接特殊Octal Flash时(OPI DTR模式下反转字节序)下载与启动注意事项(以MX25UM51245为例)...