文档章节

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

奋斗到天明
 奋斗到天明
发布于 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
昌平
程序员
javascript 设计模式之工厂(Factory)模式

工厂模式介绍 工厂模式是一个创建型的模式,主要就是创建对象。其中工厂模式又分为简单工厂模式和抽象工厂模式。简单工厂模式是通过工厂方法确定创建 对应类型的对象。抽象工厂模式是通过子类...

hlxiong
2014/04/14
0
0
java设计模式-- 单例模式

在很久之前,也就是在大二暑假的时候,那时候看马士兵的视频教程中有提到很多的设计模式。 java的设计模式大致可以分为3大类,23种设计模式。 其中,创建型模式有5种:单例模式、建造者模式、...

爱学习的逃课君
2014/11/27
0
0
设计模式Java Design Pattern-工厂方法模式FactoryMethod

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

勇敢写信
03/22
0
0
设计模式笔录(二),设计模式有哪些

本人出道5年,学习、编程、再学习、再编程一路走过,只是在笔和纸留下些脚印,实感惭愧。现开始把自己学习到的心得,实践中的体会,一一贴在互联网上,大家互相学习、探讨,寻找一些技术朋友...

方旭
2011/03/31
0
0
设计模式梳理(一)

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

lxq_xsyu
2017/11/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Future,Thread,Callable,Executors.newXXXThreadPool

package cunrent.future;import java.util.concurrent.*;public class FutureCook { public static void main(String[] args) throws InterruptedException, ExecutionExcept......

noteman
16分钟前
2
0
shing boot 做session共享 redis

因为多台服务器负载均衡,在获取客户端的sessionId的时候,会出现第一次和第二次不一样,因为负载均衡的缘故,你的服务器最少两台,那么客户端连接第一次请求和第二次请求如果不是同一台服务...

小马_wolf
20分钟前
1
0
【Springboot+mybatis】 解析Excel并批量导入到数据库

【Springboot+mybatis】 解析Excel并批量导入到数据库置顶 2018年01月16日 20:05:52 冉野丶 阅读数:4060 标签: excel导入数据库 文件上传 excel解析 更多个人分类: POI 工作问题归纳...

奥特曼之王
22分钟前
2
0
Mac OS下安装Axure RP 8.0.0.3312 中文破解版

Mac下一款快速原型设计工具——Axure RP,有了它可以大大提高你的工作效率。此次带来的是Axure RP 8.0.0.3312 版本。 介绍 Axure RP 能帮助网站需求设计者,快捷而简便的创建基于网站构架图的...

james_laughing
23分钟前
1
0
【Guava】使用Guava的RateLimiter做限流

一、常见的限流算法 目前常用的限流算法有两个:漏桶算法和令牌桶算法。 1.漏桶算法 漏桶算法的原理比较简单,请求进入到漏桶中,漏桶以一定的速率漏水。当请求过多时,水直接溢出。可以看出...

大海201506
25分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部