Java设计模式--单列设计模式
设计模式:解决某一类问题行知最有效的方法。java有23种设计模式
单列设计模式:
解决一个类在内存中只存在一个对象
思路:(要保证对象的唯一性)
1.为了避免其它程序建立该对象,先禁止替他类创建改对象,(构造函数私有化)
2.还能让其他程序可以访问到该对象,只能在该类中自己生成一个对象
3.为了其他程序可以访问到当中的值,可以设计一些方法获取到值。
当然他们当中有两种方式:懒汉式,饿汉式。
(其中两者的区别是在内存当中的何时创建)
下面是饿汉式的代码:(写法)(开发一般用这个方法)
//创建一个学生类的单列设计模式
class Student
{
private String name="zhulang";
//构造函数私有化
private Student(){};
//静态自己创建自己的对象
private static Student s =new Student(); //静态方法获取到该对象
public static String getInstance()
{
return s.name;
}
懒汉式:(面试时一般用这个)
原理,对象是在方法被调用时,才初始化,也叫做对象的延时加载
如下:只有Student类进内存。但是对象没有存在,只getInstance方法是才被创建
class Student
{
private String name = "zhulang"; // 构造函数私有化
private Student()
{
}; // 静态自己创建自己的对象
private static Student s = null; // 静态方法获取到该对象
public static String getInstance()
{
//对象是否被其他程序调用
if (s == null)
{
//上锁
synchronized (Student.class)
{
if (s == null)
s = new Student();
}
}
return s.name;
} }
Java设计模式--单列设计模式的更多相关文章
- Java基础-单列设计模式
概念: Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建 ...
- 黑马程序员——JAVA基础之单列设计模式
------- android培训.java培训.期待与您交流! ---------- 单列设计模式是面试中的一个常考的点,所谓单例模式就是说对象在内存中只能存在一个.如果有其他变量是该类对象,那么他 ...
- java设计模式--单列模式
java设计模式--单列模式 单列模式定义:确保一个类只有一个实例,并提供一个全局访问点. 下面是几种实现单列模式的Demo,每个Demo都有自己的优缺点: Demo1: /** * 单列模式需要满足 ...
- java单列设计模式 小记
单例设计模式-------懒汉式,饿汉式 单例设计模式是一种很常见的设计模式 在这里介绍两种单例设计模式 懒汉式与饿汉式 一.先说一说单例设计模式的特点: >>1.单例设计模式保证一个类只 ...
- Java中单态设计模式
Java中单态设计模式 2011-09-23 16:38:46| 分类: Java | 标签:technology! |举报|字号 订阅 此博文是转自新浪博客中一名叫做"俊俊的 ...
- Java进阶篇 设计模式之十四 ----- 总结篇
前言 本篇是讲述之前学习设计模式的一个总结篇,其目的是为了对这些设计模式的进行一个提炼总结,能够通过查看看此篇就可以理解一些设计模式的核心思想. 设计模式简介 什么是设计模式 设计模式是一套被反复使用 ...
- Java进阶篇设计模式之一 ----- 单例模式
前言 在刚学编程没多久就听说过设计模式的大名,不过由于当时还是个彻彻底底的菜鸟,并没有去触碰.直到在开始工作中对简单的业务代码较为熟悉之后,才正式的接触设计模式.当时最早接触的设计模式是工厂模式,不过 ...
- 【转】java io 流 设计模式
知识点:什么是装饰模式: http://wenku.baidu.com/view/ad4eac9f51e79b896802263b.html(原理讲的很清楚) http://wenku.baidu.c ...
- java 23种设计模式,一般情况下,常用的有哪些? 转载
原址:http://wangle.iteye.com/blog/196972 工厂模式, 工厂方法模式,单例模式, 外观(Facade)模式, 观察者(Observer)模式,桥接(Bridge)模式 ...
随机推荐
- oracle object_id和data_object_id的区别
Oracle的数据字典表dba_objects包含了两个字段,object_id, data_object_id,官方文档上的解释是: object_id: Dictionary object num ...
- WordPress WP-Realty插件‘listing_id’参数SQL注入漏洞
漏洞名称: WordPress WP-Realty插件‘listing_id’参数SQL注入漏洞 CNNVD编号: CNNVD-201310-499 发布时间: 2013-10-23 更新时间: 20 ...
- Beta Round #9 (酱油杯noi考后欢乐赛)PLQ和他的小伙伴们
题目:http://www.contesthunter.org/contest/Beta%20Round%20%EF%BC%839%20%28%E9%85%B1%E6%B2%B9%E6%9D%AFno ...
- ♫【CSS】命名颜色
color: aqua; 每个浏览器都支持一套它能识别且能正确渲染的命名颜色.这些颜色包括: aqua 浅绿色 #00ffffblack 黑色 #000000blue 蓝色 #0000fffuchsi ...
- TeamViewer 远程时出现:现在无法捕捉画面。这可能是由于恰的用户切换或远程桌面会话断开、最小化
关掉远程访问主机的TeamViewer ,再重新打开软件
- 【leetcode】编辑距离
dp方程“ 1.初始化:dp[0][i]=i; dp[j][0]=j; 2.dp[i][j]= dp[i-1][j-1](相等) dp[i-1][j]+1 ,,dp[i][j-1]+1 ...
- 一个简单的DELPHI程序注册码设计 .
当你辛辛苦苦用DELPHI做好了一个你认为十分不错的程序,你是否想把它发布出去成为共享软件呢 做为一个共享软件,注册码肯定是少不了的,你可以通过判断程序是否注册来进行功能,时间或一些其它限制.现在就 ...
- Area - POJ 1265(pick定理求格点数+求多边形面积)
题目大意:以原点为起点然后每次增加一个x,y的值,求出来最后在多边形边上的点有多少个,内部的点有多少个,多边形的面积是多少. 分析: 1.以格子点为顶点的线段,覆盖的点的个数为GCD(dx,dy),其 ...
- Android之ContextMenu的使用方法以及与OptionMenu的区别
>> ContextMenu是android的context menu上下文菜单,选择某项VIEW后长按menu键,就会显示出来.比如EditeText就可以通过长按来弹出拥有“cut”, ...
- solr4.0.0学习(二) 数据库导入clob与blob为索引
导入clob很简单.但是blob好像没有提供方法,所以改了一下源码,重新编译替换class文件,竟然成功了. 先把配置文件贴上 SCHEMA.XML <?xml version="1. ...