A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Johnny_Hu 中级黑马   /  2015-3-10 21:05  /  657 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

思想:
对象的唯一性(解决一个类在内存只存在一个对象)
1、为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象;
2、还为了让其他程序可以访问到该类对象,只好在本类中,自定义对象;
3、为了方便其他程序对自定义的访问,可以对外提供一些访问方式。

代码步骤:
1、将构造函数私有化
2、在类中创建一个本类对象
3、提供一个方法可以获取到该对象
注意:
对于事物该怎么描述,还是怎么描述
当需要将该事物的对象保证在内存中唯一性时,就将以上的三部加上即可
下面是例子
  1. package com.hupingyan.Static;

  2. class DesginTool
  3. {
  4.         private int num;
  5.         public void setNum(int num)
  6.         {
  7.                 this.num = num;
  8.         }
  9.         public int getNum()
  10.         {
  11.                 return num;
  12.         }       
  13.         //单例设计模式三部曲 Start
  14.         private DesginTool(){}
  15.         private static DesginTool desgin = new DesginTool();
  16.         public static DesginTool getObject()
  17.         {
  18.                 return desgin;
  19.         }
  20.         //单例设计模式三部曲 End
  21. }


  22. public class Desgin {
  23.         public static void main(String[] args)
  24.         {
  25.                 DesginTool aa = DesginTool.getObject();
  26.                 DesginTool aa1 = DesginTool.getObject();
  27.                 aa.setNum(50);
  28.                 System.out.println(aa.getNum());
  29.                 System.out.print(aa1.getNum());
  30.         }
  31. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

2 个回复

倒序浏览
单例设计模式可以分为饿汉式和懒汉式
饿汉式:single 类一进内存,就已经创建好了对象
例子:
  1. class single
  2. {
  3.        private single(){}
  4.        private single s = new single();
  5.        public static single getSingle()
  6.     {
  7.         return s;
  8.     }
  9. }
复制代码


懒汉式:single类进内存,对象还没存在,只有调用了getSingle方法时,才建立对象。
例子:
  1. class single
  2. {
  3.     private single(){}
  4.     private static single s = null;
  5.     public static single getSingle()
  6.     {
  7.         if(s==null)
  8.         {
  9.             s = new single();      
  10.         }
  11.         return s;
  12.     }
  13. }
复制代码
一般开发中用饿汉式 ,而懒汉式面试时会碰到

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1 没有做线程同步处理哦

查看全部评分

回复 使用道具 举报
学习了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马