Search

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

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

영상

개념

<script> class Student { constructor(name, kor, eng) { /* 변수의 생성과 값 초기화를 동시에 할 수 있다. */ this.name = name; this.kor = kor; this.eng = eng; } printData() { document.write("이름:" + this.name + ", 국어:" + this.kor + "점, 영어:" + this.eng + "점<br>"); } } class StudentManager { 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(studentManager) { this.studentManager = studentManager; } printStudentInfo() { document.write("전체학생 정보<br>"); for(let i=0; i<this.studentManager.stList.length; i++) { this.studentManager.stList[i].printData(); } } } class Professor { constructor(studentManager) { this.studentManager = studentManager; } searchStudentInfo(index) { document.write("학생 검색<br>"); this.studentManager.stList[index].printData(); } } let stManager = new StudentManager(); let board = new Board(stManager); let professor = new Professor(stManager); board.printStudentInfo(); professor.searchStudentInfo(1); /* 위와 같이 게시판(Board)이나 교수(Professor) 클래스에서 학생 정보를 사용하기 위해서는 학생매니저(StudentManager) 클래스를 일일이 전부 넣어줘야 한다. 이를 싱글톤 패턴을 사용하면, 보다 쉽게 사용가능하다. */ </script>
Java
복사