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
随机推荐
- Android辅助功能实现自动抢红包(附源码)
- 详解Angular CLI + Electron 开发环境搭建
- PHP类与对象中的private访问控制的疑问
- jQuery.Highcharts.js绘制柱状图饼状图曲线图
- bootstrap daterangepicker双日历时间段选择控件详解
- 浏览器中的正则表达式陷阱说明
- Linux RedHat下安装Python2.7开发环境
- asp.net中引用同一个项目中的类库 避免goToDefinition时不能到达真正的定义类
- Asp.Net使用Bulk实现批量插入数据
- sqlyog 中文乱码问题的设置方法
- php使用PDO事务配合表格读取大量数据插入操作实现方法
- MySQL中EXPLAIN命令详解
- Linux下创建nginx脚本-start、stop、reload…
- Avalonjs双向数据绑定与监听的实例代码
- JavaScript中的继承之类继承
- 1980病毒完整解决方案
- php session_start()出错原因分析及解决方法
- php提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
- C# 委托(delegate) 的小例子
- Android升级支持库版本遇到的两个问题详解