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命中率模型计算
命中率模型是在owi之前比较常用的一种诊断性能问题的方法,通过命中率的计算,发现系统中的一些设置是否合理,当命中率不高的时候,通过调整一些参数和设置,提高命中率,有效的提高系统的性能和吞吐量.但当系统 ...
- 如何当好党支部书记 z
如何当好党支部书记 党支部书记是党支部一班人的“班长”,一个党支部是否具有坚强的战斗力,能否发挥好战斗堡垒作用,在很大程度上取决于是不是有一个得力的支部书记.在改 革开放,全面建设小康社会,构建社会主 ...
- DevExpress中,添加Winform窗体到DockPanel z
DevExpress中,添加Winform窗体到DockPanel // 在使用DevExpress过程中,原先已经创建好的导航窗体,如何添加到DockPanel中进行展示? FormX frmX = ...
- Modifying the ASP.NET Request Queue Limit
Modifying the ASP.NET Request Queue Limit When ASP.NET is queried, the request for service is carrie ...
- RedHat/CentOS系统信息查看命令大全
系统# uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo ...
- JavaScript高级程序设计27.pdf
第11章 DOM扩展 W3C将一些已经成为事实标准的专有扩展标准化并写入规范当中.对DOM的两个主要扩展是SelectorsAPI(选择符API)和HTML5 选择符API 就是根据CSS选择符选择与 ...
- oracle查看表锁及解锁
--kill session语句 1 alter system kill SESSION '2171,60490'; --以下几个为相关表 1 2 3 4 5 6 7 SELECT * FROM v$ ...
- CSS备忘笔记
一.CSS的概念 CSS(Cascading Style Sheet),中文译为层叠样式表,它是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言. 二.CSS使用方式 使用CSS控制页面 ...
- poj 1193 内存分配
好麻烦的模拟题,一次性过了就好!!!不过用了两天哦.. 小伙伴们慢慢做哦. #include <iostream> #include <list> #include <q ...
- CF 19D 线段树+set压缩坐标轴+离散化map
题意: n个操作,在200000*200000的平面上加删点 find 严格在坐标右上角,x最小,再y最小的点 线段树做,区间为离散化后的 X轴坐标 ,维护区间点数 和 最小的 y 值 ( 维护最小y ...