java用静态工厂代替构造函数使用方法和优缺点
public static Boolean valueOf(boolean b) {
return b ? Boolean.TRUE : Boolean.FALSE;
}
2. 优点:
可以有名称
不一定要创建新对象,可以返回已有的对象
可以返回子类类型的对象(例:java.util.Collections)
让参数化代码变短(例:new HashMap<String,List<String>>() 改为 HashMap.newInstance() )
3. 缺点:不能子类化,不被IDE工具识别。
4. 常用名称:valueOf/of ; getInstance(Singleton); newInstance ; getType(不同的类时用); newType
相关推荐
-
Java静态工厂方法的实例详解
Java静态工厂方法的实例详解 什么是静态工厂方法 对于类而言,为了让使用者获取它自身的一个实例,最常用的方法就是提供一个公有的构造器. 当然,这里要介绍的是另一种方法--静态工厂方法,一个返回类的实例的静态方法. 举个例子,Boolean的一个将基本类型boolean转为封装类的方法,valueOf: public static Boolean valueOf(boolean b) { return (b ? TRUE : FALSE); } 为什么要使用静态工厂方法 那么,我们为什么要使用
-
java用静态工厂代替构造函数使用方法和优缺点
1. 形式 复制代码 代码如下: public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE;} 2. 优点: 可以有名称不一定要创建新对象,可以返回已有的对象可以返回子类类型的对象(例:java.util.Collections)让参数化代码变短(例:new HashMap<String,List<String>>() 改为 HashMap.newInstance()
-
java中File类的构造函数及其方法
1.IO流(Input Output) IO流技术主要的作用是解决设备与设备之间的数据传输问题,比如:硬盘的数据--读取到-->内存中 内存的数据--读取到-->硬盘中 键盘上的数据--读取到-->内存中 2.IO流技术的运用场景 导出报表.上传大头照.下载.解析xml文件.....等等 (数据保存到硬盘,该数据可以做到永久性保存.数据一般以文件的形式保存到硬盘上.sun使用一个File类来描述文件或者文件夹) 3.File类的构造函数(方法) File(String pathname)
-
C#的静态工厂方法与构造函数相比有哪些优缺点
最近,在与同事进行协同编程时,我们开始讨论在C#中初始化新对象的最佳方法.我一直是使用构造函数实现,尽管他倾向于静态工程方法.这引起了关于每种类型的利弊的大量来来回回的讨论. 为了说明我所说的内容,这是两个例子: // Using the constructor SqlConnection myConnection = new SqlConnection(connectionString); // Using a static factory method IDbConnection myCon
-
java设计模式之工厂方法详解
一.概念 工厂方法模式是类的创建模式,又叫虚拟构造子模式(virtual constructor) 或者多态性工厂模式. 二.模式动机 定义一个抽像的工厂,将产品的具体创建工作推迟到抽像工厂的具体子类中,有些产品的创建非常复杂,试想如果将所有具体产品的创建工作都像简单工厂一样放到一个静态工厂方法中,那么这个工厂方法将无比巨大,且当需要扩展增加新的产品时,就必须修改原先的工厂方法,违背了开-闭原则,而工厂方法模式,对于每个具体产品的创建都有一个具体的工厂来创建,如果新增产品,只需要新增一个实现抽像
-
Java设计模式之静态工厂模式详解
本文实例讲述了Java设计模式之静态工厂模式.分享给大家供大家参考,具体如下: 静态工厂模式(static factory)也叫简单工厂模式. 涉及到3个角色:工厂类角色,抽象产品类角色和具体产品类角色. 抽象产品类可以使用接口或者父类来描述产品对象的行为特征. 具体产品类就是某一具体的对象. 静态工厂类有一个静态的方法,含有判断逻辑,决定要创建哪一种具体的产品对象. 其设计模式如下: 抽象产品类 IProduct package org.test.design.sf; public inte
-
Spring的实例工厂方法和静态工厂方法实例代码
Spring的实例工厂方法和静态工厂方法都可以用来实例化bean,本文我们就来看看相关实例. 静态工厂方法:直接调用静态方法可以返回Bean的实例 package com.zhu.string.factory; import java.util.HashMap; import java.util.Map; public class StaticCarFactory { /** * 静态工厂方法:直接调用静态方法可以返回Bean的实例 * */ private static Map<String
-
Java设计模式之工厂模式实现方法详解
本文实例讲述了Java设计模式之工厂模式实现方法.分享给大家供大家参考,具体如下: 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的 工厂模式在分为三类: 1)简单工厂模式(Simple Factory):不利于产生系列产品: 2)工厂方法模式(Factory Method):又称为多形性工厂: 3)抽象工厂模式(Abstract Factory):又称为工具箱,产生产品族,但不利于产生新的产品: 一.简单工厂模式 简单工厂模式又称静态工厂方法模式
-
Java设计模式之工厂模式分析【简单工厂、工厂方法、抽象工厂】
本文实例讲述了Java设计模式之工厂模式.分享给大家供大家参考,具体如下: 一. 简单工厂 先来思考一个问题.我们平时写程序时,会有这种情况,A对象里面需要调用B对象的方法,这时我们使用的一般是new关键字来创建一个B实例,然后调用B实例的方法.这种做法的坏处在于:A类的方法实现直接调用了B类的类名(这种方式也被称为硬编码耦合),一旦系统需要重构:需要使用C类来代替B类时,程序就不得不修改A类代码,如果应用中有100个或者10000个类以硬编码方式耦合了B类,则需要修改100个.10000个地方
-
Spring实战之使用静态工厂方法创建Bean操作示例
本文实例讲述了Spring实战之使用静态工厂方法创建Bean操作.分享给大家供大家参考,具体如下: 一 配置 <?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" x
随机推荐
- iOS通过逆向理解Block的内存模型
- MVC页面之间参数传递解析
- js通过location.search来获取页面传来的参数
- Ajax实现异步刷新验证用户名是否已存在的具体方法
- php下保存远程图片到本地的办法
- Struts2修改上传文件大小限制方法解析
- C语言数据结构链表队列的实现
- Android编程实现两点触控功能示例
- Android调用手机拍照功能的方法
- php获取四位字母和数字的随机数的实现方法
- js加密解密字符串可自定义密码因子
- ASP XML制作菜单管理程序
- 全面解析Android应用开发中Activity类的用法
- Javascript 小写字母依次变为大写
- 微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
- 部署到iis后无法加载运行CSS文件的解决方法
- “求职信”病毒/蠕虫行为深入分析
- FTP服务器中将Linux用户限制在自己目录下的方法
- 模拟Ping操作的一个Java类
- mysql 之通过配置文件链接数据库