public class RegHandler{
private static RegHandler regHandler;//only one instance
private RegHandler(){} /* prevents other classes from
} instantiating the class */
public class RegHandler{
private static RegHandler regHandler;
private RegHandler(){}
public static RegHandler getInstance(){//getter method
if (regHandler==null){ //if object doesn’t exist
regHandler=new RegHandler();//creates only one instance
}
return regHandler;//returns existing object’s reference
}}
example:recode the oob-case1 student register
class Student
{
String missionId;
String name;
int age;
public Student()
{
name = null;
age = 0;
System.out.println("Student begin to regist");
}
public Student(String s, int i)
{
name = s;
age = i;
}
public void getMissionId()
{
//Registrar r = new Registrar();
Registrar r = Registrar.getRegistrar();
missionId = r.getMissionId(this);
}
}
class Registrar
{
private static int id = 0;
private static Registrar r;
private Registrar()
{
System.out.println("Registrar is begin now");
}
public static Registrar getRegistrar()
{
if(r == null )
r = new Registrar();
return r;
}
public String getMissionId(Student s)
{
Validator v = Validator.getValidator();
if(v.missionId(s))
{
id++;
}
String missionId = "S000"+id;
return missionId;
}
}
class Validator
{
private static Validator v;
private Validator()
{
System.out.println("Validator is begin now");
}
public static Validator getValidator()
{
if(v == null)
v = new Validator();
return v;
}
public boolean missionId(Student s)
{
if (s.age<18)
return false;
return true;
}
}
public class UniversityRegistation {
/** Creates a new instance of UniversityRegistation */
public UniversityRegistation() {
System.out.println("The system is working now");
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Student s = new Student("bobo",26);
s.getMissionId();
System.out.println(s.name+" "+s.age+" "+s.missionId);
Student ss = new Student("shirley",22);
ss.getMissionId();
System.out.println(ss.name+" "+ss.age+" "+ss.missionId);
}
}