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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王振2014 中级黑马   /  2014-6-21 15:24  /  1343 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

单例模式怎样调用它内部的方法啊,拿到就像静态一样

7 个回复

正序浏览
单例模式中将对象私有化,不允许外界直接实例化该类,但是提供了可以调用的静态方法,调用该静态方法,就能返回该类的对象,对象有了以后,就可以使用里面的方法了
回复 使用道具 举报
谢谢楼上几位,我明白了
回复 使用道具 举报
首先你要明白为什么要用单例,目的是让该类在内存中永远只有一个对象,所以他要有个私有的构造函数,便于自己实例化自己。所以说里面的方法不一定都是静态的,但是共外部访问的都是静态的。
回复 使用道具 举报
单例设计模式内部的方法,必须都是静态的,要不然没有办法调用,跟没创建一样。而且单利不能被继承,因为构造函数是私有的。单利没什么好处,就只是保证对象唯一而已。
回复 使用道具 举报
  1. class danLi
  2. {
  3.         private danLi(){}
  4.         private static danLi s = new danLi();
  5.        
  6.         public static danLi getDanLi()
  7.         {
  8.                 return s;
  9.         }
  10. }

  11. class Test
  12. {
  13.         public static void main(String[] args)
  14.         {
  15.                 danLi.getDanLi();
  16.         }
  17. }
复制代码
单例模式的思路就是三步,楼主记牢了
1.将构造函数私有化。        保证对象的唯一性
  2.在类中创建一个本类对象。
     这一句也要私有
  3.提供一个方法可以获取到该类
为什么要弄个方法获取而不直接调用对象?因为我们要保证代码的封装性

回复 使用道具 举报
你想问什么呀帅哥,单例模式的方法是静态的,可以通过类.方法调用创建对象,哈哈 好像是这样
回复 使用道具 举报
他提供 了一个接口,让你可以得到该对像的引用,得到引用了,你想怎么样就怎么样啦。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马