본문 바로가기

Design Pattern

(4)
[DP] 2. 빌더 패턴(Builder Pattern) #2. 빌더 패턴(Builder pattern)인스턴스를 생성할 때, 생성자(Constructor)만을 통해서 생성하는데는 어려움이 있다. 빌더 패턴은 이 문제를 기반으로 고안된 패턴 중 하나이다. 예를 들면, 생성자 인자로 너무 많은 인자가 넘겨지는 경우 어떠한 인자가 어떠한 값을 나타내는지 확인하기 힘들다. 또 어떠한 인스턴스의 경우에는 특정 인자만으로 생성해야 하는 경우가 발생한다. 이럴 경우, 특정 인자에 해당하는 값을 null로 전달해줘야 하는데, 이는 코드의 가독성 측면에서 매우 좋지 않다는 것을 직감적으로 알 수 있다.코드를 통해 확인해보자.public Student(long id, String name, String major, int age, String address) { this.id..
[DP] 1. 싱글턴 패턴(Singleton pattern) #1. 싱글턴 패턴(Singleton Pattern) 싱글턴 패턴이란 인스턴스를 하나만 만들어 사용하기 위한 패턴이다. 커넥션 풀, 스레드 풀, 디바이스 설정 객체 등의 경우, 인스턴스를 여러 개 만들게 되면 자원을 낭비하게 되거나 버그를 발생시킬 수 있으므로 오직 하나만 생성하고 그 인스턴스를 사용하도록 하는 것이 이 패턴의 목적이다. 하나의 인스턴스만을 유지하기 위해 인스턴스 생성에 특별한 제약을 걸어둬야 한다. new를 실행할 수 없도록 생성자에 private 접근 제어자를 지정하고, 유일한 단일 객체를 반환할 수 있도록 정적 메소드를 지원해야 한다. 또한 유일한 단일 객체를 참조할 정적 참조변수가 필요하다. Singleton.java >> ver.1 public class Singleton { p..
[JS_Design Pattern] 2. 모듈 패턴 ( Module Pattern ) Module Pattern 자바스크립트의 모듈 패턴은 javascript 의 코드 관리 기법 중 하나로 객체 핸들링을 위한 방법론 중 하나이다. 객체에 유효범위를 주어 private, public을 구분하여 캡슐화를 할 때 사용하는 방법이다. Namespace pattern에 Lexical Scope를 추가한 것으로 보면 된다. Module Pattern 이란, 즉시 실행 함수(Immediately Invoked Function)에 this인자를 넘겨주고 함수 내부에서 exports란 인자로 접근할 수 있는 패턴을 말한다. basic>123(function(){ //something to do})();cs 모듈 패턴을 사용하는 예를 코드를 통해 살펴보자.code>12345678910111213141516..
[JS_Design Pattern] 1. 네임 스페이스 패턴 ( NameSpace Pattern ) NameSpace Pattern 전역 변수를 기초로 하는 JavaScript의 단점 때문에, 여러 스크립트가 한 페이지 안에 함께 있는 소스코드에서는 변수가 많아질 수록 이름이 겹칠 우려가 있다. 이는 협업에서도 상당히 중요한 부분이다. 뿐만 아니라 어느 곳에서도 접근할 수 있는 전역 변수이기에 소스의 신뢰도가 낮아질 수 있다. 이러한 단점들을 보완하기 위한 패턴이 네임스페이스 패턴이다. 네임 스페이스란 구분이 가능하도록 정해놓은 범위나 영역을 의미한다. 이름 그대로, 이름 공간을 선언하여 다른 공간과 구분하도록 하는 것이다. 객체 리터럴 네임 스페이싱(Object Literal NameSpacing) 하나의 전역 객체를 생성한 다음. 모든 함수, 객체, 변수를 이 전역객체에 추가하여 구현하는 방법이다...