Computer Science/Design Pattern 새로비 2018. 6. 19. 00:35
1. 싱글턴 패턴이란? 위키피디아에서 보면 싱글턴 패턴의 정의는 다음과 같이 나와있습니다. 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 유형의 디자인 유형을 싱글턴 패턴이라고 한다. 즉, 싱글턴 패턴은 해당 클래스의 인스턴스가 하나만 만들어지고, 프로세스 어느 곳에서든지 그 인스턴스에 하나에 접근할 수 있게 만든 패턴입니다. 클래스가 하나의 인스턴스를 만들게끔 코드 상에서 처리한 후, 프로세스 내에서 그 하나의 인스턴스에 접근하게 만드는 것입니다. 2. 싱글턴 패턴을 사용하는 이유 위에서 보듯이, 싱글턴 패턴에서는 '하나만, 하나에, 하나의'라는 표현이 반복되는 것을 볼 수 있습니다. 즉, 싱글턴을 ..
더 읽기
Computer Science/Design Pattern 새로비 2017. 10. 5. 23:18
Static Factory Method 패턴은 객체를 생성 시, 생성자를 통해 객체를 생성하는 것이 아닌, 프로그래머가 명시한 static method를 통해 객체를 생성하는 디자인 패턴입니다. 먼저 이 패턴을 적용할 시 얻는 이점에 대해서 먼저 이야기 하고, 각각의 항목에 대하여 설명하도록 하겠습니다. 1. 의미있는 메소드 명을 명시함에 따라 가독성이 좋아진다.2. 중복 Signature Constructor의 형태가 가능해진다.3. 필요에 따라서, Singleton pattern을 통해 미리 생성된 객체를 반환하여 오버헤드를 줄인다.4. 반환하는 타입의 sub-type도 반환이 가능하다. 1. 의미있는 메소드 명을 명시함에 따라 가독성이 좋아진다 객체를 생성하는 일반적인 방법은 다음과 같이 생성자를 ..
Computer Science/Design Pattern 새로비 2017. 9. 17. 14:36
팩토리 메서드 패턴은 객체를 만들어 내는 부분을 서브 클래스에게 위임하는 패턴입니다. 즉, new 키워드를 호출하는 부분을 서브 클래스에게 위임하는 것이죠. 이 패턴을 사용하는 이유는 어떤 상황에 따라서 생성해야하는 객체들이 다를 때, 그 객체를 생성하는 객체와 생성되는 객체 간의 결합도를 낮추어 코드를 유연하게 하기 위해 만들어진 것입니다. 역시 말이 어려울 때는 예로들어 설명하는 것이 가장 좋습니다. Game CD를 판매하는 GameStore라는 클래스가 있다고 합시다. public class GameCDStore { CD cd; public CD orderCD(String type){ if(type.equals("diablo")) cd = new DiabloCD(); else if(type.equa..
Computer Science/Design Pattern 새로비 2017. 6. 9. 00:19
생활코딩의 egoing님의 글을 정리한 것입니다. MVC란 Model View Controller의 약자로 에플리케이션을 세가지 역할로 구분한 방법론입니다. 아래 그림처럼 사용자가 Controller를 조작하면 그 Controller는 Model을 통해서 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어하여 사용자에게 전달하게 됩니다. MVC의 세 가지 구성요소 각각을 설명하면 다음과 같습니다. Controller - Model에 명령을 보냄으로써 Model에게 그것의 상태를 변경, 데이터 검색 등을 수행하게 하는 컴포넌트Model - 데이터를 관리하는 컴포넌트. 상태 변화가 있을 때 그것을 Controller와 View에게 통보하여 View는 최신의 정보를 보여주게 되며, ..
Computer Science/Design Pattern 새로비 2017. 5. 28. 11:01
디자인 패턴에서 결합도와 응집도는 좋은 소프트웨어 설계를 위해서 지켜야하는 기준이자 원칙입니다. 결합도는 하나의 클래스가 다른 클래스와 얼마나 많이 연결되어 있는지를 보여주는 의존성 정도를 나타내는 표현입니다. 결합도가 낮으면 모듈간의 상호 의존성이 줄어들면서 객체의 재사용이나 수정, 유지보수가 용이해집니다. 응집도는 하나의 모듈 내부에 존재하는 구성 요소들의 기능적 관련성으로, 응집도가 높은 모듈은 하나의 책임에 집중하고 독립성이 높아져 재사용이나 기능의 수정, 유지보수가 용이해집니다.