반응형
클래스 구조에 대한 설명
Page.mjs
파일에는 두 개의 클래스, Page
와 Notebook
,이 정의되어 있습니다. 이들은 객체 지향 프로그래밍에서 주요 구성 요소입니다. 자바스크립트에서 클래스는 데이터와 그 데이터에 연산을 수행하는 로직을 캡슐화하는 방법을 제공합니다.
Page
클래스
Page
클래스는 페이지의 텍스트 내용을 나타내며 다음과 같은 구조를 가지고 있습니다:
- 생성자 (
constructor
):constructor
메서드는 새로운Page
객체를 생성할 때 호출됩니다.text
매개변수를 받아서 객체의text
속성으로 할당합니다. 이 속성은 페이지의 내용을 저장합니다.
- 메서드 (
print
):print
메서드는 객체의text
속성을 콘솔에 출력합니다. 이는 페이지의 내용을 표시하기 위해 사용됩니다.
Notebook
클래스
Notebook
클래스는 여러 페이지(Page
객체)를 관리하는 노트북을 나타냅니다. 구조는 다음과 같습니다:
- 생성자 (
constructor
):constructor
메서드는 새로운Notebook
객체를 생성할 때 호출됩니다.pages
속성은 빈 배열로 초기화되며, 이 배열은Notebook
에 속한 페이지들을 저장합니다.
- 메서드 (
addPage
):addPage
메서드는 주어진 텍스트를 사용하여 새Page
객체를 생성하고 이를pages
배열에 추가합니다. 이를 통해 노트북에 새 페이지를 추가할 수 있습니다.
- 메서드 (
print
):print
메서드는 노트북의 모든 페이지를 순회하며 각Page
객체의print
메서드를 호출하여 콘솔에 출력합니다. 이는 노트북에 있는 모든 페이지의 내용을 표시하기 위해 사용됩니다.
클래스 간의 관계는 다음과 같습니다:
Notebook
클래스는Page
객체들을pages
배열에 포함합니다. 이것은 집합 관계(aggregation)를 나타냅니다. 여기서Notebook
은 여러 개의Page
를 포함하지만, 각Page
는 독립적으로 존재할 수 있습니다.
정리
각 클래스는 자신만의 책임을 가지며, 이는 객체 지향 설계의 단일 책임 원칙(Single Responsibility Principle)을 따르는 것입니다. Page
는 단순히 페이지 내용을 관리하고 표시하는 역할을 담당하며, Notebook
은 페이지들의 모음을 관리하고 전체 노트북을 표시하는 역할을 담당합니다.
이와 같은 클래스 설계는 코드를 조직화하고, 유지 보수를 쉽게 하며, 확장성을 높이는 데 도움을 줍니다.
'컴퓨터과학과' 카테고리의 다른 글
[프레지와 인공지능] 프레지 학습 5단계 (0) | 2024.04.13 |
---|---|
[Node.js] 클래스 코딩 설명 (0) | 2024.04.12 |
[Node.js] JavaScript에서 모듈 내보내기(exporting)와 가져오기(importing) (1) | 2024.04.10 |
[Node.js] 클래스 활용하기(export, import) (1) | 2024.04.09 |
[Node.js] Node.js의 ES6 문법에서 확장자에 관하여 (0) | 2024.04.08 |
댓글