菜鸟教程  传送门

  

  单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

  这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

注意:

  • 1、单例类只能有一个实例。
  • 2、单例类必须自己创建自己的唯一实例。
  • 3、单例类必须给所有其他对象提供这一实例。

实例:

  用到两个类JDBCUtil.java(单例类)和JDBCUtil_use.java

  无需在JDBCUtil_use.java中实例出JDBCUtil对象

  JDBCUtil_use.java通过JDBCUtil.instance去使用单例类中公有方法

 

package Gary03;

public class JDBCUtil {

    //设置成单例模式 只在JDBCUtil中new一次    在其他地方不需要再动态申请
public static JDBCUtil instance = new JDBCUtil(); //构造方法私有化,
private JDBCUtil() { } public void GetConnection() {
System.out.println("GetConnection()");
} // public static void main(String[] args) {
// JDBCUtil.instance.GetConnection();
//
// //JDBCUtil util= new JDBCUtil();
// //util.GetConnection();
//
// } }

JDBCUtil.java

package Gary03;

import Gary03.JDBCUtil;

public class JDBCUtil_use {
public static void main(String[] args) { //JDBCUtil jdbc = new JDBCUtil();
//直接通过JDBCUtil.instance去访问GetConnection()方法
JDBCUtil.instance.GetConnection();
}
}

JDBCUtil_user.java

  程序结构

  

  设置成单例模式后为节约性能只在JDBCUtil中new一次 在其他地方不需要再动态申请

  为防止在其他地方类似如下通过new实例化

JDBCUtil jdbc = new JDBCUtil();

  可将JDBCUtil.java中将构造方法私有化,外部将无法new JDBCUtil()

    private JDBCUtil() {

    }

  单例模式要设置成static静态,JDBCUtil_use.java外部访问JDBCUtil.java中的GetConnection方法可通过instance来访问

public class JDBCUtil {

    //设置成单例模式 只在JDBCUtil中new一次    在其他地方不需要再动态申请
public static JDBCUtil instance = new JDBCUtil(); //构造方法私有化,
private JDBCUtil() { } public void GetConnection() {
System.out.println("GetConnection()");
} }
public class JDBCUtil_use {
public static void main(String[] args) { //JDBCUtil jdbc = new JDBCUtil();
//直接通过JDBCUtil.instance去访问GetConnection()方法
JDBCUtil.instance.GetConnection();
}
}

JavaWeb_(设计模式)单例模式的更多相关文章

  1. 设计模式 单例模式(Singleton) [ 转载2 ]

    设计模式 单例模式(Singleton) [ 转载2 ] @author java_my_life 单例模式的结构 单例模式的特点: 单例类只能有一个实例. 单例类必须自己创建自己的唯一实例. 单例类 ...

  2. 设计模式 单例模式(Singleton) [ 转载 ]

    设计模式 单例模式(Singleton) [ 转载 ] 转载请注明出处:http://cantellow.iteye.com/blog/838473 前言 懒汉:调用时才创建对象 饿汉:类初始化时就创 ...

  3. c#设计模式-单例模式(面试题)

    c#设计模式-单例模式 单例模式三种写法: 第一种最简单,但没有考虑线程安全,在多线程时可能会出问题, public class Singleton { private static Singleto ...

  4. java设计模式单例模式 ----懒汉式与饿汉式的区别

    常用的五种单例模式实现方式 ——主要: 1.饿汉式(线程安全,调用率高,但是,不能延迟加载.) 2.懒汉式(线程安全,调用效率不高,可以延时加载.) ——其他: 1.双重检测锁式(由于JVM底层内部模 ...

  5. 最简单的设计模式——单例模式的演进和推荐写法(Java 版)

    前言 如下是之前总结的 C++ 版的:软件开发常用设计模式—单例模式总结(c++版),对比发现 Java 实现的单例模式和 C++ 的在线程安全上还是有些区别的. 概念不多说,没意思,我自己总结就是: ...

  6. ES6教程-字符串,函数的参数,了解函数的arguments对象,js面向对象,设计模式-单例模式,解构赋值

    前言 主要讲解了ES6对字符串的拓展,包括includes,startsWith和endsWith,另外增加了字符串模板. Start includes()是否包含 startsWith()以什么开头 ...

  7. Java设计模式の单例模式

    -------------------------------------------------- 目录 1.定义 2.常见的集中单例实现 a.饿汉式,线程安全 但效率比较低 b.单例模式的实现:饱 ...

  8. java设计模式——单例模式(一)

    一. 定义与类型 定义:保证一个类仅有一个实例,并提供一个全局访问点 类型:创建型 二. 适用场景 想确保任何情况下都绝对只用一个实例 三. 优缺点 优点: 在内存里只有一个实例,减少了内存开销 可以 ...

  9. php实现设计模式————单例模式

    php实现设计模式————单例模式 什么是单例模式 为什么要使用单例模式 php中有哪些方式实现新建一个对象实例 如何阻止这种实例化实现理想的单例模式 代码实现 什么是单例模式 为什么要使用单例模式 ...

随机推荐

  1. Jconsole与Jmx 分析JVM状况(上) 转

    出处:Jconsole与Jmx 分析JVM状况(上) JVM 平台提供 Mbeans 说明 在 Java 2 平台 5.0 以上版本,有一组 API 可以让 Java 应用程序和允许的工具监视和管理  ...

  2. SpringBoot上传文件,经过spingCloud-Zuul,中文文件名乱码解决办法

    最近用springCloud整合springboot做分布式服务发现经过zuul之后上传的中文文件名乱码全都变成?????,从而引发异常,单独用springboot却是好的,在网上找到相关资料总结如下 ...

  3. 一款完美代替微信小程序原生客服消息的工具:

    一.设置:无需开发,多种回复(自动+人工)   自动回复形式有3种: 打开客服消息(用户只要和客服互动过一次,再次点击进入,会收到设置好的自动回复) 关键词回复(用户在小程序中回复某个关键词内容时,会 ...

  4. springboot(二十二)-sharding-jdbc-读写分离

    前面我们使用sharding-jdbc配置了分库分表.sharding-jdbc还有个用法,就是实现读写分离. 什么时候需要或者可以使用读写分离? 当我们的项目所使用的数据库查询的访问量,访问频率,及 ...

  5. 教你用python爬取网站美女图(附代码及教程)

    我前几篇文章都是说一些python爬虫库的用法,还没有说怎样利用好这些知识玩一些好玩的东西.那我今天带大家玩好玩又刺激的,嘻嘻!对了,requests库和正则表达式很重要的,一定要学会!一定要学会!! ...

  6. Nginx如何配置https证书?

    #把80端口请求跳转到443端口 server { listen 80; server_name 域名; return 301 https://$http_host$request_uri; } se ...

  7. 2019.10.9php进阶

    <?php header("Content-type:text/html;charset:utf-8"); if ($_FILES["file"][&qu ...

  8. git用ssh方式下载和提交代码

    之前git上传下载代码都是用的http方式,但是今天遇到个大文件上传的时候,http方式上传超出大小限制了413 request entity too large,所以改成了用ssh方式上传,简单记录 ...

  9. jQuery获取当前按钮的id

    function test(e) { $(e.target).attr('id') } // 记得带上点击事件

  10. php关于系统环境配置的一些函数

    disk_free_space()  :返回指定目录的可用空间(以字节为单位)