Java设计模式_(创建型)_工厂模式
来源:互联网 发布:初学钢琴软件 编辑:程序博客网 时间:2024/05/21 22:46
引用百科:
工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的。
但是如果有很多的对象需要去new创建,并且设置各种属性,几十几百,如此代码就非常纠结了,
于是乎工厂模式就出现了,称为工厂模式其实就是如同现实中的工厂一样,将需要做的事集中起来,将产品的实现流程化,将通用功能实现可重用性,
一个小例子实现工厂:
比如说芯片cpu厂商老板说,需要根据不同参数生产出不同的cpu,那么有了这个需求,就可以创建个工厂,如下:
CPU工厂,
CPU接口,
各类CPU的具体功能实现,
如此便可以根据不同的需求生产不同的CPU ,同时如果有新需求,也可以新增CPU实现,只要实现CPU 统一规范,即可实现插拔式扩展。
简单实现代码如下,
CPU接口:
public interface Cpu {public void run();}
CPU接口实现:
AMD CPU :
public class AmdCpu implements Cpu {/** * CPU的针脚数 */private int pins = 0;public AmdCpu(int pins) {this.pins = pins;}@Overridepublic void run() {System.out.println("AMD CPU的针脚数:" + pins);}}
Inter CPU:
public class IntelCpu implements Cpu {/** * CPU的针脚数 */private int pins = 0;public IntelCpu(int pins) {this.pins = pins;}@Overridepublic void run() {System.out.println("Intel CPU的针脚数:" + pins);}}
CPU工厂:
public class CpuFactory {public static Cpu createCpu(String type, int param) {Cpu cpu = null;if ("intel".equals(type)) {cpu = new IntelCpu(param);} else if ("amd".equals(type)) {cpu = new AmdCpu(param);}return cpu;}}
public class Client {public static void main(String[] args) {Cpu cpu = CpuFactory.createCpu("amd",987);cpu.run();}}
通过以上工厂模式代码,便可以轻松实现,根据同一产品的不同需求,自动生成该产品的不同版本类型,无需关注具体的实现!
阅读全文
1 0
- Java设计模式_(创建型)_工厂模式
- Java设计模式_(创建型)_抽象工厂模式
- Java设计模式_创建模式_工厂模式
- Java设计模式_创建型_工厂模式_商品是这样生产的
- 设计模式_创建型模式——工厂方法
- Java设计模式_(创建型)_单例模式
- Java设计模式_(创建型)_原型模式
- Java设计模式_(创建型)_建造者模式
- Java设计模式_抽象工厂模式
- java设计模式_简单工厂模式
- java设计模式_工厂模式
- java设计模式_抽象工厂模式
- 设计模式_工厂方法模式(Java)
- java设计模式02_工厂模式
- Java 设计模式_工厂模式
- java基础_设计模式_抽象工厂模式
- 设计模式_工厂模式
- 设计模式_工厂模式
- 【UGUI】UGUI 文字背景根据文字大小自适应
- FPGA知识点总结
- 连咸鱼都能学会的安装tomcat、修改端口
- 如何使用Git上传本地项目到github?(mac版)
- 打印机理论
- Java设计模式_(创建型)_工厂模式
- iOS10检查内存泄漏时出现的问题以及解决办法--Analyze检测的User-facing text should use localized
- logback整合mybatis输出sql语句两种配置
- mybatis-spring-boot-starter 1.0.1 之后的版本问题
- pandas.tseries.offsets
- kali-linux详细更新源
- Linux SPI总线和设备驱动架构之二:SPI通用接口层
- 学习Linux,这7点你要知道
- 设计模式之原型设计模式