文档章节

创建型模式之二:工厂模式

奋斗到天明
 奋斗到天明
发布于 2015/08/27 16:35
字数 266
阅读 17
收藏 0

1. 工厂模式的故事

工厂模式的作用是根据不同的参数新建对象,下面的例子是关于在工厂中造人,如果我们问工厂要一个男孩,工厂就会生产一个男孩,如果我们问工厂要一个女孩,工厂就会生产一个女孩,基于不同的参数,工厂会生产不同的东西。

2.工厂模式的类图

3.工厂模式的代码

interface Human {
 public void Talk();
 public void Walk();
}
 
class Boy implements Human{
 @Override
 public void Talk() {
 System.out.println("Boy is talking..."); 
 }
 
 @Override
 public void Walk() {
 System.out.println("Boy is walking...");
 }
}
 
class Girl implements Human{
 
 @Override
 public void Talk() {
 System.out.println("Girl is talking..."); 
 }
 
 @Override
 public void Walk() {
 System.out.println("Girl is walking...");
 }
}
 
public class HumanFactory {
 public static Human createHuman(String m){
 Human p = null;
 if(m == "boy"){
 p = new Boy();
 }else if(m == "girl"){
 p = new Girl();
 }
 
 return p;
 }
}

4.工厂模式在Java标准库

根据不同的参数,getInstance()方法返回Calendar类不同实例:

java.util.Calendar - getInstance();
  java.util.Calendar - getInstance(TimeZone zone);
  java.util.Calendar - getInstance(Locale aLocale);
  java.util.Calendar - getInstance(TimeZone zone,locale aLocale);

  java.text.NumberFormat - getInstance();
  java.text.NumberFormat - getInstance(Locale inLocate)

以上文章翻译自: http://www.programcreek.com/2013/02/java-design-pattern-factory/

© 著作权归作者所有

共有 人打赏支持
奋斗到天明
粉丝 18
博文 112
码字总数 82707
作品 0
昌平
程序员
私信 提问
PHP设计模式(一):简介及创建型模式

我们分三篇文章来总结一下设计模式在PHP中的应用,这是第一篇创建型模式。 一、设计模式简介 首先我们来认识一下什么是设计模式: 设计模式是一套被反复使用、容易被他人理解的、可靠的代码设...

juhenj
2014/05/15
228
2
设计模式Java Design Pattern-工厂方法模式FactoryMethod

我的博客 一、 设计模式的分类 大体可以分为三类: 创建型模式(5个) 单例模式、原型模式、工厂方法模式、抽象工厂模式、建造者模式 结构性模式(7个) 适配器模式、装饰器模式、代理模式、...

勇敢写信
2018/03/22
0
0
设计模式之抽象工厂模式(创建型)

模式定义 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。 模式角色 抽象...

smileNicky
01/01
0
0
设计模式梳理(一)

设计模式梳理(一) 总体来说设计模式分为三大类: @案例源码地址:https://gitlab.com/lxqxsyu/DisgnPattern 创建型模式 简单工厂模式 工厂类是整个模式的关键。它包含必要的判断逻辑,能够...

lxq_xsyu
2017/11/02
0
0
小菜学设计模式——设计模式总结之创建型

1、面向过程与面向对象 1)面向过程通过划分功能模块,通过函数间相互调用来实现,但需求变化时就需要更改函数,而你改动的函数有多少地方在调用她呢?关联多少数据,这是很不容易弄得清楚地...

learn_more
2015/07/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

漏洞防御与修复工作

漏洞管理工作是企业安全建设必不可少的一环,在风险管理工作中,漏洞管理能够防患于未然,企业对漏洞管理有着广泛的基础建设和实践经验。但随着攻防技术的发展,传统漏洞管理的安全技术和管理...

linuxprobe16
37分钟前
1
0
MicroPython技术及应用前景

1 Micropython技术是什么? MicroPython极精简高效的实现了Python3语言。它包含Python标准库的一小部分,能在单片机和受限环境中运行。 1.1 MicroPython发展 由剑桥大学的理论物理学家乔治....

bodasisiter
44分钟前
2
0
跟我学Spring Cloud(Finchley版)-13-通用方式使用Hystrix

本节详细讲解使用Hystrix的通用方式。 简介 Hystrix是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。Hystrix主要...

周立_ITMuch
52分钟前
1
0
🛠️Hanjst/汉吉斯特更新加JavaScript运行时优化等

这是 Hanjst/汉吉斯特 发布以来的首个主要升级更新版本。这次的主要升级更新的内容包括移除HTML Comments注释行, 优化在 Hanjst include模板文件时的JavaScript运行时环境。 Hanjst 在设计和...

wadelau
今天
2
0
OSChina 周六乱弹 —— 舔狗是没有好下场的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @我没有抓狂 :#今天听什么# #今天听这个# 分享 Nirvana 的歌曲《Smells Like Teen Spi...》 《Smells Like Teen Spi...》- Nirvana 手机党少...

小小编辑
今天
556
14

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部