Skip to content

Commit

Permalink
Create 이상조.md
Browse files Browse the repository at this point in the history
  • Loading branch information
sjoleee authored Oct 29, 2024
1 parent 6b09fc5 commit 3beaf4f
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions 챕터_7/이상조.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# 자바스크립트 디자인 패턴

## 생성 패턴

- 생성자 패턴
- 모듈 패턴
- 노출 모듈 패턴
- 싱글톤 패턴
- 프로토타입 패턴
- 팩토리 패턴

## 생성자 패턴

생성자를 통해 동일한 객체를 찍어낸다.
똑같은 매서드 계속 새로 정의하지 말고 프로토타입을 써라.

## 모듈 패턴

- 객체 리터럴: 예시에 왜 캡슐화라고 적혀있을까...?
```js
const module = {
value: 'value',

publicMethod() {
console.log(this.value);
}
}

module.value = 'new value'; // module 객체는 프로퍼티를 비공개하는게 불가능하지 않나?
```

- 모듈 패턴: 모듈 내에 export하지 않는 변수 하나 만들고 클로저를 사용한 캡슐화
- 믹스인 가져오기 변형: 외부 모듈(믹스인)을 사용하는 방법...?

단점 중 나중에 추가한 메서드에서는 비공개 멤버에 접근할 수 없다는건 실제 코드의 수정이 아니라 객체에 새로운 메서드를 추가할 때를 말하는 거겠지?

## 노출 모듈 패턴

걍 파일 내에서 내보내고 싶은 녀석만 객체로 묶어서 보낸다.

## 싱글톤 패턴

클래스의 인스턴스가 딱 하나만 존재하도록 하는 패턴

- 싱글톤임을 파악하기 힘들다.
- 테스트하기 힘들다.
- 신중한 조정이 필요하다? 그러니까 인스턴스 만들어지고 나서 참조할 수 있도록 순서를 잘...?

메모리 절약도 도움이 되려나...

## 프로토타입 패턴

이건 이해가 잘 안가네... 마지막 예제 코드는 뭘 말하고 싶은걸까?

## 팩토리 패턴

원하는 인스턴스 유형을 찍어내는 공장같은 클래스
생성을 쉽고 편하게 해줄 수 있다. 근데 클래스 말고 걍 함수로 만들어도 되는거 아닌가; instanceof로 타입체크가 편해서 그런가?
한 군데서 만들기 때문에 유지보수성이 좋다.


0 comments on commit 3beaf4f

Please sign in to comment.