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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 仲伟 中级黑马   /  2013-5-12 14:02  /  1413 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 仲伟 于 2013-5-13 13:04 编辑

单例模式下
一般都有构造,获取值
枚举类型,怎么理解的单例模式的
请从设计模式角度给我考虑这个问题,谢谢了

10 个回复

倒序浏览
一滴汗.....飘过.....
回复 使用道具 举报
我个人理解单例模式就是一个特殊的枚举类型啊。
回复 使用道具 举报
何羡玉 发表于 2013-5-13 12:44
我个人理解单例模式就是一个特殊的枚举类型啊。

不能简单写一个dome吗
小程序,让我这个菜鸟学习一下
回复 使用道具 举报
你是要写一个单例吗
回复 使用道具 举报
何羡玉 发表于 2013-5-13 13:01
你是要写一个单例吗

算了,我想知道啊,很简单的东西,不用问你们了,自己弄就行了,现在有人说我,发帖赚 技术分呢,不想弄了啊
回复 使用道具 举报
枚举也差不多 只不过就多定义了些元素而已啊
回复 使用道具 举报
本帖最后由 潘廖明 于 2013-5-13 13:21 编辑

我个人认为:
你只要能够把:
public class Season
{
     SPRING;//还原为private  static  final  Season  SPRING=new  Season(实例化的具体值);
      这样还不明白?
     private  static  final     有了这个修饰不就跟符合单列只能够创建一个对象的规则?(符合饿汉式)
      你new Season();那肯定就要有对应的构造函数了。
}
回复 使用道具 举报
package enhanceTest;

public abstract class enumTest {
      private enumTest(){}
      public static final enumTest Mon= new enumTest()
      { public String toLocaleString()
      {
              return "星期一";
      }
      };
      public static final enumTest Tes= new enumTest()
      { public String toLocaleString()
      {
              return "星期二";
      }
      };
      public static final enumTest Wed= new enumTest()
      { public String toLocaleString()
      {
              return "星期三";
      }
      };
      public static final   enumTest Thur= new enumTest()
      { public String toLocaleString()
      {
              return "星期四";
      }
      };
      public static final enumTest Fri= new enumTest()
      { public String toLocaleString()
      {
              return "星期五";
      }
      };
      public static final enumTest Satu= new enumTest()
      { public String toLocaleString()
      {
              return "星期六";
      }
      };
      
      public static final enumTest Sun= new enumTest()
      { public String toLocaleString()
      {
              return "星期日";
      }
      };
      
     public  abstract String toLocaleString();
   
        /**
         * @param args
         */
        public static void main(String[] args) {
        enumTest a=enumTest.Mon;
          String b=a.toLocaleString();
          System.out.println(b);
        }

}
这个就是枚举   我自己做的一道面试题
回复 使用道具 举报
何羡玉 发表于 2013-5-13 13:20
package enhanceTest;

public abstract class enumTest {
  1. package enhanceTest;

  2. public abstract class enumTest {
  3.        private enumTest(){}      
  4.        public static final enumTest Sun= new enumTest()
  5.        { public String toLocaleString()
  6.        {
  7.                return "星期日";
  8.        }
  9.        };
  10.       
  11.       public  abstract String toLocaleString();
  12.      
  13.         /**
  14.           * @param args
  15.           */
  16.          public static void main(String[] args) {
  17.          enumTest a=enumTest.Sun;
  18.            String b=a.toLocaleString();
  19.            System.out.println(b);
  20.          }

  21. }
复制代码
挺感谢你,你要是吧枚举类型和main方法分开更好些
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马