COMPOSITE 패턴 동일하게 취급 받는 파생 클래스가 여러개 있을 때, 이 여러 파생 클래스를 멤버 변수로 두고, 똑같은 기반 클래스를 상속하는 COMPOSITE 클래스를 만들 수 있다. 이 패턴의 사용은 단순하지만 가져...
백근영.log on 20-04-04
FACTORY 패턴이 필요한 이유 우리는 11장에서 DIP에 대해 배우면서, 구체적인 클래스에 의존하지 않고 사이에 인터페이스를 하나 두어서 추상화에 의존하도록 하는 방법을 배웠다. 하지만 어떤 클래스 내에서 다른...
급여 관리 사례 연구 18장과 19장에서는 간단한 일괄 임금 지불 시스템을 설계하고 구현하는 과정을 소개한다. 이번 장에서는 그 개발 과정의 맨 첫 번째 반복을 보여줄 것이다. 명세 다음은 첫 반복에 선택된 사용...
Employee e = DB.getEmployee("Bob"); if (e != null && e.isTimeToPay(today)) e.paY(); 우리는 위와 같은 null 체크에 대해 익숙하다. 종종 이런 식의 코드는 가독성을 떨어뜨리며 에러가 발생하기 쉽다. 이런...
클래스와 인스턴스의 관계 종종 클래스와 인스턴스는 1:N 관계를 가진다. 그리고 인스턴스는 애플리케이션보다 짧은 라이프사이클을 가지며 생성되고 소멸되기를 반복한다. 하지만 단 하나의 인스턴스만을 가져야 하...
FACADE FACADE 패턴은 복잡하고 일반적인 인터페이스를 가진 객체 그룹에 간단하고 구체적인 인터페이스를 제공하고자 할 때 사용한다. 예를 들어, 우리가 직접 작성한 어플리케이션에 DB와 연동되어야 하는 Product...
Creating your own vanilla JS helper library like Lodash and Underscore.js https://gomakethings.com/creating-your-own-vanilla-js-helper-library-like-lodash-and-underscore.js/ var _ = (function () { 'us...
javascript
코드루덴스 on 20-04-04
- 자바스크립트 개체 Array deep clone //---------------- < 얕은 복사 > let arr = [1,2,3], arr2; arrs1 = [...arr]; //spread 연산자 arrs2 = arr.slice(); // Array.slice arrs3 = []; Object.assign(arr3, arr...