정의상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴.상위 클래스에서는 객체 생성방식에 대해 알 필요가 없어서 유연성을 갖게 되고 객체 생성 로직은 하위 클래스에서만 관리되기 때문에 유지보수성이 향상된다.예시enum CoffeeType { LATTE, ESPRESSO}abstract class Coffee { protected String name; public String getName() { return name; }}class Latte extends Coffee { public Latte() { name = "latte"; }}class Espresso extends Coffee { public Espresso..
디자인패턴
1. 정의- 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴. 2. 장점- 하나의 인스턴스를 다른 모듈이 공유하여 사용하기 때문에 인스턴스 생성비용이 줄어든다.- 따라서 인스턴스생성에 많은 비용이 드는 I/O 바운드 작업에 많이 사용한다. (네트워크, DB 연결, File system 등) 3. 단점- 의존성이 높아지는 문제가 있다.- TDD를 방해하는 문제가 있다.- 단위 테스트 시에는 각 테스트가 독립적이어야 하는데 싱글톤 패턴으로 만든 인스턴스를 공유하기 때문에 각 테스트마다 독립적인 인스턴스를 만들기 어렵다. 4. 싱글톤 패턴을 구현하는 방법단순한 메서드 호출public class Singleton { private static Singleton instance; private Singl..
싱글톤 패턴 어떤 클래스가 유일하게 1개만 존재해야 할 때 사용. 예를 들어 어떤 프리터기에 여러 대의 컴퓨터가 접속해야 사용하는 것과 비슷한 논리이다. 소켓 통신을 위한 socketClient를 싱글톤 패턴으로 생성하는 예시 내 경험으로는 보통 Util 클래스 들을 싱글톤으로 만들었다. 주소를 주면 지역을 추출해 주는 유틸클래스 같은 것. 어댑터 패턴 서로 호환이 안되는 인터페이스를 호환되도록 만들어주는 장치 예를 들어 110V, 220V 인터페이스가 있을 때 어떤 기계가 둘 다 이용할 수 있도록 해주는 돼지코 같은 개념이다. DDD 패턴으로 도메인별로 모듈을 쪼개서 개발했는데, 이 도메인들을 다 호출할 수 있는 Core 모듈에서 실제 도메인 내부의 메서드를 호출해서 쓸 때 어댑터를 사용했던 경험이 있..