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

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

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

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

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

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.类图
image
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容