2024/9/3

软件设计                  石家庄铁道大学信息学院

 

实验7:单例模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解单例模式的动机,掌握该模式的结构;

2、能够利用单列模式解决实际问题。

 
   

 


[实验任务一]:学号的单一

仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。

实验要求:

1.  画出对应的类图;

 

2.提交源代码;

public class StudentId {

 

    // 私有静态实例变量,存储唯一的实例

    private static StudentId instance = null;

 

    // 私有成员变量,存储学号

    private String id;

 

    // 私有构造函数,防止外部直接创建实例

    private StudentId() {

    }

 

    // 公共静态方法,提供唯一实例的访问点

    public static StudentId getInstance() {

        if (instance == null) {

            instance = new StudentId();

        }

        return instance;

    }

 

    // 设置学号的方法

    public void setId(String id) {

        this.id = id;

    }

 

    // 获取学号的方法

    public String getId() {

        return id;

    }

 

    // 可选:重写toString方法,方便打印学号

    @Override

    public String toString() {

        return "StudentId{" +

                "id='" + id + '\'' +

                '}';

    }

 

    // 可选:防止通过克隆创建新实例

    @Override

    protected Object clone() throws CloneNotSupportedException {

        throw new CloneNotSupportedException();

    }

 

    // 可选:防止通过反序列化创建新实例

    private Object readResolve() {

        return getInstance();

    }

}

3.注意编程规范。

 

posted @ 2024-09-03 21:26  Hbro  阅读(7)  评论(0)    收藏  举报