컴퓨터 과학/🀰 디자인패턴

컴퓨터 과학/🀰 디자인패턴

옵저버 패턴

옵저버 패턴옵저버 패턴은 주체가 어떤 객체의 상태변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴이다. 여기서 주체란 객체의 상태 변화를 보고 있는 관찰자이며, 옵저버들이란 이 객체의 상태 변화에 따라 전달되는 메서드 등을 기반으로 '추가 변화 사항'이 생기는 객체들을 의미한다. 또한, 주체와 객체를 따로 두지 않고 상태가 변경되는 객체를 기반으로 구축하기도 한다. 옵저버 패턴은 주로 이벤트 기반 시스템에 사용하며 MVC(Mode-View-Controller) 패턴에도 사용된다예를들어 주체라고 볼 수 있는 모델에서 변경사항이 생겨 update() 메서드로 옵저버인 뷰에 알려주고 이를 기반으로 컨트롤러등이 작동하는 것이다. 자바에서의 ..

컴퓨터 과학/🀰 디자인패턴

전략 패턴

전략패턴전략 패턴은 정책 패턴이라고도 하며, 객체의 행위를 바꾸고 싶은 경우 '직접' 수정하지 않고 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가가능하게 만드는 패턴이다.우리가 어떤 것을 살 때 네이버펭, 카카오페이 등 다양한 방법으로 결제하듯 어떤 아이템을 살 때 LUNACard로 사는 것과 KAKAOCard로 사는 것을 구현한 예제이다. 결제 방식의 '전략'만 바꿔서 두 가지 방식으로 결제하는 것을 구현했다.자바의 전략 패턴import java.text.DecimalFormat;import java.util.ArrayList;import java.util.List;interface PaymentStrategy { public void pay(int amount..

컴퓨터 과학/🀰 디자인패턴

팩토리 패턴

팩토리 패턴팩토리 패턴(factory pattern)은 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴이자 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴이다.상위 클래스와 하위 클래스가 분리되기 때문에 느슨한 결합을 가지며 상위 클래스에서는 인스턴스 생성방식에 대해 전혀 알 필요가 없기 때문에 더 많은 유연성을 갖게 된다. 그리고 객체 생성 로직이 따로 떼어져 있기 때문에 코드를 리팩터링하더라도 한 곳만 고칠 수 있게 되니 유지 보수성이 증가된다. 자바스크립트의 팩토리 패턴자바스크립트에서 팩토리 패턴을 구현한다면 간단하게 enw Object()로 구현할 수 있다.const num = new Objec..

컴퓨터 과학/🀰 디자인패턴

싱글톤패턴

디자인패턴디자인패턴이란 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것을 의미한다. 싱글톤패턴싱글톤 패턴(singleton pattern)은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수 있지만, 그렇게 하지 않고 하나의 클래스를 기반으로 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는데 쓰이며, 보통 데이터베이스 연결모듈에 많이 사용한다. 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어드는 장점이 있다. 하지만 의존성이 높아진다는 단점이 있다. 자바스크립트의 ..

이재원
'컴퓨터 과학/🀰 디자인패턴' 카테고리의 글 목록 (2 Page)