Search

클래스3_개념06_싱글톤패턴_예시3

대분류
STEP10 함수/클래스
문제 난이도
필수
소분류
클래스3_개념

영상

개념

<script> class Student{ constructor(name , kor , eng){ this.name = name; this.kor = kor; this.eng = eng; } } class StudentManager{ static instance = new StudentManager(); // 내부에서 static 변수로 자신을 생성한다. static getInstance(){ return StudentManager.instance; // instance 는 그냥 변수명으로 바꿔도 상관없다. } constructor(){ this.stList = []; let st1 = new Student("김철수" , 100, 20); let st2 = new Student("이만수" , 20, 40); this.stList.push(st1); this.stList.push(st2); } } class Board{ constructor(){ } printStudentInfo(){ console.log("전체학생") let stManager = StudentManager.getInstance(); for(let i = 0; i < stManager.stList.length; i++){ console.log(stManager.stList[i]) } } } class Professor{ constructor(){ } searchStudentInfo(index){ let stManager = StudentManager.getInstance(); console.log("학생검색 : " , stManager.stList[index]) } } // let stManager = new StudentManager(); 이미 static으로 생성했기 때문에 또 생성하면 안된다. let board = new Board(); let pro = new Professor(); board.printStudentInfo(); pro.searchStudentInfo(1); /* 위와 같이 게시판(Board)이나 교수(Professor) 클래스에서 학생 정보를 사용하기 위해서는 학생매니저(StudentManager) 클래스를 일일이 전부 넣어줘야 한다. 이를 싱글톤 패턴을 사용하면, 보다 쉽게 사용가능하다. */ </script>
Java
복사