吉林省网站建设_网站建设公司_前端工程师_seo优化
2025/12/17 22:44:01 网站建设 项目流程

一、一般结构:

package danli;public class Singleton {//    private Singleton(){
//    }
//
//    //静态内部类
//    private static class HolderClass{}{
//        private final static Singleton instance = new Singleton();
//
//    }
//
//    public static Singleton getInstance(){
//        return  HolderClass.instance;
//    }
//
//    public static void main(String[] args) {
//        Singleton s1,s2;
//        s1 = Singleton.getInstance();
//        s2 = Singleton.getInstance();
//        System.out.println(s1==s2);
//    }//静态私有成员变量private static Singleton instance=null;//私有构造函数private Singleton(){}//静态公有工厂方法,返回唯一实例public static Singleton getInstance(){if(instance==null){instance = new Singleton();}return instance;}}

静态私有实例
私有构造函数
公有工厂方法(主函数调用的时候使用),确保不能通过new关键字来创建实例,通过这种方法获取实例
二、实例:
实例1、身份证:
、、、
package danli.shenfenzheng;
public class IdentityCardNo {
private static IdentityCardNo instance =null;
private String no;
private IdentityCardNo(){}
//静态公有方法,返回唯一实例
public static IdentityCardNo getInstance(){
if(instance==null){
System.out.println("第一次办理身份证,分配新号码!");
instance = new IdentityCardNo();
instance.setIdentityCardNo("N04000111112222");
}else{
System.out.println("重新办理身份证,获取旧号码!");
}
return instance;
}

private void setIdentityCardNo(String no){this.no=no;
}
public String getIdentityCardNo(){return this.no;
}

}
、、、

、、、
package danli.shenfenzheng;
public class Client {
public static void main(String[] args) {
IdentityCardNo no1, no2;
no1=IdentityCardNo.getInstance();
no2=IdentityCardNo.getInstance();
String str1=no1.getIdentityCardNo();
String str2=no2.getIdentityCardNo();
System.out.println("第一个身份证号码为:"+str1);
System.out.println("第二个身份证号码为:"+str2);
System.out.println("两个身份证号码是否相同:"+str1.equalsIgnoreCase(str2));
System.out.println("两个身份证号码是否相同:"+str1==str2);
}

}

示例2、打印池:
package danli.dayinchi;

//异常类,抛出一个打印池异常
public class PrintSpoolerException extends Exception{
public PrintSpoolerException(String message){
super(message);
}
}

package danli.dayinchi;

public class PrintSpoolerSingleton {
private static PrintSpoolerSingleton instance=null;
private PrintSpoolerSingleton(){}
public static PrintSpoolerSingleton getInstance() throws PrintSpoolerException{
if(instance==null){
System.out.println("创建打印池!");
instance = new PrintSpoolerSingleton();
}else{

throw new PrintSpoolerException("打印池正在工作中!");

}
return instance;
}

public void manageJobs(){System.out.println("管理打印任务!");
}

}
、、、
、、、
package danli.dayinchi;

public class Client {
public static void main(String[] args) {
PrintSpoolerSingleton ps1,ps2;
try{
ps1=PrintSpoolerSingleton.getInstance();
ps1.manageJobs();
}catch(PrintSpoolerException e){
System.out.println(e.getMessage());
}
System.out.println("======================");
try{
ps2=PrintSpoolerSingleton.getInstance();
ps2.manageJobs();
}catch(PrintSpoolerException e){
System.out.println(e.getMessage());
}
}
}
、、、

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询