Book 3

[1장] 디자인 패턴과 프로그래밍 패러다임 - 전략 패턴

전략 패턴(Strategy pattern) 전략패턴은 정책패턴이라고도 하며, 객체의 행위를 바꾸고 싶은 경우 '직접' 수정하지 않고 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴 어떤것을 구매할때 네이버페이, 카카오페이 등 다양한 방법으로 결제하듯이, 결제 방식의 '전략'만 바꿔서 두가지 방식으로 결제

면접을 위한 CS 전공지식 노트 - 팩토리 패턴

팩토리 패턴(Factory pattern) 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴이자, 상속관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴 장점 느슨한 결합 상위클래스에서는 인스턴스 생성 방식에 대해 알필요가 없기 때문에 많은 유연성을 갖게 된다. 객체 생성 로직이 독립적이기 때문에 코드를 리팩터링하기 용이하여, 유지 보수성이 증가된다. 자바에서의 팩토리 패턴 enum CoffeeType { LATTE, ESPRESSO } abstract class Coffee { protected String name; public String getName() { return name; } } class Lat..

[1장] 디자인 패턴과 프로그래밍 패러다임 - 싱글톤 패턴

싱글톤 패턴(Singleton pattern) 하나의 인스턴스만 생성하고, 이 인스턴스를 전역적으로 접근 가능하게 만들어 사용하는 디자인 패턴 장점 인스턴스가 오직 하나만 생성되기 때문에, 생성 비용이 줄어들어 메모리 사용량을 절약할 수 있다. 전역적으로 접근 가능하기 때문에, 어디서든 쉽게 사용할 수 있다. 하나의 인스턴스를 사용하기 때문에 인스턴스 간에 상태를 공유할 수 있다. 여러 스레드가 동시에 인스턴스를 생성하려고 할 때, synchronized 키워드를 사용해 동시성 문제를 방지할 수 있다. 단점 전역 상태를 유지하기 때문에 다른 객체 간의 의존성이 높아지고 코드 유지보수가 어려워질 수 있다. 싱글톤 패턴은 테스트를 할 때 의존성 주입을 하지 않기 때문에 테스트 코드 작성이 어렵다. 싱글톤 객..