静态方法还有一种常见的用途。NumberFormat类使用factory产生不同风格的格式对象。

  1. NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();
  2. NumberFormat percentFormatter = NumberFormat.getPercentInstance();
  3. double x = 1.0;
  4. System.out.println(currencyFormaatter.format(x));    //prints $0.10
  5. System.out.println(percentFormatter.format(x));    //prints 10%

为什么NumberFormat类不利用构造器完成这些操作呢?这主要有两个原因:

  • 无法命名构造器。构造器的名字必须与类同名。但是,这里希望得到的货币实例和百分比实例采用不同的名字。
  • 当使用构造器时,无法改变所构造的对象类型。而Factory方法将返回一个DecimalFormat类的对象,这是NumberFormat的子类(有关继承的详细内容请参看第五章)。

转载于:https://blog.51cto.com/mrwucg/1058237

4.4.4 Factory方法相关推荐

  1. java框架就是调库吗_关于java:Factory方法更适合框架和抽象工厂库吗?

    Abstract Factory和Factory方法模式都是创建设计模式,它解决了不同场景下的对象创建问题. 根据GOF工厂方法模式 Define an interface for creating ...

  2. java中factory方法_Java的23中设计模式--工厂方法模式(Factory Method)

    1.普通工厂模式 工厂类 /*** @Title Factory.java * @Package factory.factory1 * @date 2015-1-22 上午10:16:02 *@ver ...

  3. 工厂方法(Factory Method)模式

    一.工厂方法(Factory Method)模式 工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟的子类中. 工厂方法模式是简单工厂 ...

  4. Spring 通过工厂方法(Factory Method)来配置bean

    在spring的世界中, 我们通常会利用bean config file 或者 annotation注解方式来配置bean. 在第一种利用bean config file(spring xml)方式中 ...

  5. 创建服务factory和service方法的区别

    factory方法返回的是对象,json或数组,也可以返回字符串类型的数据,但service方法只能返回数据或对象 创建服务有3种方法 $provide.provider('服务名',function ...

  6. Builder Design模式和Factory Design模式之间有什么区别?

    Builder设计模式和Factory设计模式有什么区别? 哪一个更有利,为什么? 如果我想测试和比较/对比这些模式,如何将我的发现表示为图形? #1楼 建筑商和抽象工厂 在某种程度上,Builder ...

  7. c#设计模式-工厂方法

    一. 工厂方法(Factory Method)模式 工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中. 工厂方法模式是简单工 ...

  8. Javascript Patterns--读书笔记8 (Factory)

    factory模式的目的是用来创建objects.它经常以类或者是一个类的静态方法的形式出现,但是不论以何种形式的出现, 最终都得实现下面的目标: 当我们在设置一组对象的时候,它们需要执行一组相同的代 ...

  9. 设计模式-Factory Method Pattern

    为什么80%的码农都做不了架构师?>>>    一. 工厂方法(Factory Method)模式 工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品 ...

最新文章

  1. 2022-2028年中国康养地产行业市场需求前景及投资战略分析报告
  2. java书籍_Java程序员必看的 13 本 Java 书籍!
  3. 根据前序、中序序列重建一棵二叉树的代码实现
  4. python工具是什么-使用Python编写命令行工具有什么好的库?
  5. 插件编写傻瓜教程VC6.0
  6. ILMerge合并多个DLL
  7. Asp.net Core全局异常监控和记录日志
  8. ajax 传递arraybuffer,jQuery $ .ajax或$ .load是否允许responseType arrayBuffer?
  9. [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫
  10. linux常见问题解决方法,Ubuntu 下2个常见问题解决方法
  11. Vue Element校验validate
  12. android 打开微信代码,微信跳转浏览器或提示手机端打开HTML代码
  13. MySQL中的 last_day() 函数
  14. 恶意程序分析之数字签名验证系统的探究
  15. vulnhub刷题记录(Pwn The Tron:1)
  16. oracle去空格去不掉,oracle去掉空格
  17. huge形式_huge什么意思怎么读
  18. sql2008数据导入与导出
  19. HeadFirstC笔记_6  数据结构与动态存储:牵线搭桥
  20. java实现区块链中的区块hash难度系数的设计

热门文章

  1. 卫星还在“织网” 北斗时代尚需时日
  2. 微软为什么要公开AI系统测试数据集和度量指标?
  3. 苹果又魔改安卓? iOS 15 正式发布、可跨设备移动文件,这届 WWDC21 带来了什么?...
  4. 人生第一次:领年终,拿股票!
  5. spring官方文档阅读笔记
  6. 如何在数据库中高效实现订座功能?
  7. CSS 相对|绝对(relative/absolute)定位系列(一)
  8. Linux海量数据高并发实时同步架构方案杂谈
  9. IDEA 创建Web项目并在Tomcat中部署运行
  10. pom配置之:distributionManagementsnapshot快照库和release发布库