7-0 디자인 패턴이란

<aside> 💡 디자인 패턴이란 반복된 문제에 대한 재사용 가능한 해결책이다.

</aside>

자바스크립트는 이런 객체지향 디자인 패턴을 적용하기에는 형식적이지가 않다. 무슨 말이냐, 자바스크립트는

이런 특성들은 자바스크립트를 다재다능하고 자유도 높은 언어로 만들어주지만, 그만큼 프로그래밍 스타일이나 규칙, 기술에 있어서 패턴화하기가 쉽지 않은 부분도 있다. 자바스크립트를 사용하면 동일한 결과를 얻을 수 있는 방법이 너무 많은 것이 그 이유이다. 그리고 이런 자바스크립트의 특징은 전통적인 디자인 패턴에도 영향을 미친다.

7-1 팩토리

<aside> 💡 팩토리 패턴은 함수 내에서 객체 생성을 캡슐화하는 패턴이다.

</aside>

장점은 어떤 구현과 객체의 생성을 서로 분리할 수 있다는 것이다. 그리고 클래스보다 훨씬 작은 면만을 노출할 수 있어 사용자에게 높은 자유도를 주지 않는다는 것이 장점이다.

클래스와 팩토리의 주요한 차이점이자 팩토리의 장점은,

따라서 자바스크립트에서는 순수한 객체지향 디자인 패턴보다 함수형 방식이 더 선호된다.

7-1-1 객체 생성과 구현의 분리