Head First设计模式(5):单件模式

更多的可以参考我的博客,也在陆续更新ing
http://www.hspweb.cn/

单件模式确保一个类只有一个实例,并提供一个全局访点。

例子:学生的学号生成方案,是在学生注册后,通过录入学生的基本信息,包括入学学年、学院、专业、班级等信息后,保存相应的资料后自动生成的。学号生成器的业务算法为:

入学学年(2位)+学院代码(2位)+专业代码(2位)+班级代码(2位)+序号(2位)

1.目录
Head First设计模式(5):单件模式_第1张图片
image
2.student.java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;

public class Student {
    private static Student client=null;
    private Student() {}

    public synchronized static Student getClient() {
        if(client==null) {
            try {
                client=new Student();
            }catch(Exception e) {
                e.printStackTrace();
            }
        }
        return client;
    }
    public String getStuNo() {
        String yearLast = new SimpleDateFormat("yy",Locale.CHINESE).format(Calendar.getInstance().getTime());
        String college="02";
        String professional="02";
        String classNum="1024";
        String ramdon=String.valueOf((int)(Math.random()*90+10));
        return yearLast+college+professional+classNum+ramdon;
    } 
}

3.test.java
public class test {
    public static void main(String[] args) {

        Student student = Student.getClient();
        System.out.println("生成的学生学号是:"+student.getStuNo());
    }
}

4.类图
Head First设计模式(5):单件模式_第2张图片
image

你可能感兴趣的:(Head First设计模式(5):单件模式)