黑马程序员技术交流社区
标题:
编写一个延迟加载的单例设计模式。
[打印本页]
作者:
李海明
时间:
2014-10-22 01:13
标题:
编写一个延迟加载的单例设计模式。
public class Test7
{
Class Dan
{
private void Dan()
{ }
public static void Dan getInstance()
{
If(instance==null)
{
Instance=new Dan();
}
Return instance;
}
}
}
我写的这个为什么不对啊?
作者:
香草芭芙
时间:
2014-10-22 02:50
public class Test7 //懒汉式用了 内部类?
{
Class Dan //class 写成大写Class,错误
{
private void Dan()
{ }
public static void Dan getInstance() //方法命名有空格,错误
{
If(instance==null) //instance 没有定义数据类型.错误
{
Instance=new Dan(); //instance 写成大写,错误
}
Return instance;//return 写成大写,错误.
}
}
}
复制代码
作者:
香草芭芙
时间:
2014-10-22 02:52
class Test7
{
static class Dan
{
private void Dan()
{
}
private static Dan instance = null;
public static Dan getInstance()
{
if (instance == null)
{
instance = new Dan();
}
return instance;
}
}
}
复制代码
懒汉式写成内部类好用吗?
作者:
香草芭芙
时间:
2014-10-22 02:53
class Single
{
private static Single s = null;
private Single() {};
public static Single getInstance()
{
if(s==null)
s = new Single();
return s;
}
}
复制代码
这是老师写的标准格式
作者:
戏言丶
时间:
2014-10-22 03:44
首先,构造函数没有返回类型,其次你的获取该类的实例对象的函数中返回类型应该是类类型,而不是void类型。
作者:
nerveva2000
时间:
2014-10-22 06:36
//懒汉式
class Single//类加载进来,没有对象,只有调用了getInstance方法时,才会创建对象。
//延迟加载形式。
{
private static Single s = null;
private Single(){}
public static Single getInstance()
{
if(s==null)
s = new Single();
return s;
}
}
复制代码
作者:
HM2014nuli
时间:
2014-10-22 07:51
懒汉式可以这样写?
作者:
diaolinan
时间:
2014-10-22 09:06
延迟加载的单例设计模式---懒汉式和饿汉式(老师讲过的懒汉式较为重要)
懒汉式:将构造函数私有化,提供一个公共的访问方式,返回一个类对象(创建对象方法)
懒汉式解决延迟加载有问题,可以加同步解决。加同步方式:同步代码块,同步函数、
作者:
Fightingforever
时间:
2014-10-22 09:20
public class Test7 //这里用了内部类
{
Class Dan
{
private void Dan()//构造函数不需要返回类型
{ }
public static void Dan getInstance()
{
If(instance==null)//这里应该是if
{
Instance=new Dan();//Instance变量没有定义
}
Return instance;//Instance和instance不是同一个变量
}
}
}
复制代码
作者:
李海明
时间:
2014-10-22 12:01
谢谢你们!
作者:
坚持525
时间:
2014-10-22 13:34
少年,新手吧,发帖子时,代码要用这个放进去,你这弄的代码也太丑了吧。
看看这个帖子,看怎么发帖的
教你怎么在黑马发帖子
作者:
坚持525
时间:
2014-10-22 13:42
singleton单例设计模式:
class SingleDemo{
private SingleDemo(){}//私有构造函数
private static SingleDemo s1 = new SingleDemo();//创建私有并静态本类对象
public static SingleDemo getS1(){//公有方法,返回SingleDemo实例对象
return s1;
}
}
//懒汉式(延迟加载方式)
class SingleDemo2{
private static SingleDemo2 s3;
private SingleDemo2(){}
public static SingleDemo2 getS3(){
if(s3==null){
s3 = new SingleDemo2();
}
return s3;
}
}
public class Singleton {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SingleDemo s1 = SingleDemo.getS1();
SingleDemo s2 = SingleDemo.getS1();
SingleDemo2 s3 = SingleDemo2.getS3();
SingleDemo2 s4 = SingleDemo2.getS3();
System.out.println(s1==s2);
System.out.println(s3==s4);
// 输出:true true
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2