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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小海 中级黑马   /  2014-3-20 22:16  /  1158 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小海 于 2014-3-22 10:08 编辑

什么是单例设计模式?枚举可以定义成私有的吗?

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

3 个回复

倒序浏览
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
  1. /**
  2. *单例模式:
  3. *1.饿汉式
  4. *2.懒汉式
  5. * @author admin
  6. *饿汉式
  7. */
  8. public class SingleTon {

  9.         /**
  10.          * @param args
  11.          */
  12.         public static void main(String[] args) {
  13.                 private  static  SingleTon  singleton=new SingleTon();
  14.                 SingleTon(){
  15.                        
  16.                 }
  17.                 public SingleTon getInstance(){
  18.                         return  singleton;
  19.                 }
  20.         }
  21. }
  22. /**
  23.   * 饿汉式:
  24.   *                饿汉式一开始就自定义一个私有、静态的对象。这样就使的加载较快,不存在进程
  25.   *同步的问题。缺点就是在进程运行时把所有的对象都加载进内存,容易造成加载速度慢,
  26.   *影响整体的性能。
  27.   */


  28. /**
  29.   * 懒汉式
  30.   */
  31. public  class   SingleTon1{
  32.          public static void main(String[] args){
  33.                  private  static SingleTon1  singleton;
  34.                  public static synchronized getInstance(){
  35.                          if (singleton!=null) {
  36.                                 singleton=new SingleTon();
  37.                         }
  38.                          return  singleton;
  39.                  }         
  40. }
  41. /**
  42.   * 懒汉式:
  43.   *                 懒汉式开始并没有创建一个静态的对象,但是懒汉式要使用加锁的方式返回创建的对象。这样线程
  44.   * 不安全,另外懒汉加载有时延、无须使用加锁方式保证线程的安全。
  45.   */

复制代码


枚举就是要让某个类型的变量的取值只能为了若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译的时候就可以控制源程序中填写的非法值。带构造方法的枚举,构造方法必须定义成私有的。这样可以保证外部代码无法新构造枚举类的实例。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。










评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
回答的很详细,谢谢
回复 使用道具 举报
单例模式讲得比枚举早多了。。。建议看看前面啊。。不然可能在讲后面的时候还是会发生类似的问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马