티끌모아 로키산맥 🏔
search
로ᄏl
배움에 끝은 없다... 개발 또한 그러하다.
Today
Yesterday
디자인 패턴 (4)
전략 패턴 (Strategy Pattern) 인터페이스란.. 사전적 정의 키보드나 디스플레이 따위처럼 사람과 컴퓨터를 연결하는 장치 컴퓨터 언어에서의 정의 기능에 대한 선언과 구현 분리 기능을 사용하는 통로 A 라는 기능이 있고, 이를 인터페이스를 통해 구현한다고 했을 때, 인터페이스는 아래와 같다. public interface Ainterface { //기능의 선언 public void funcA(); } 구현은 Class에서 A Interface를 implements로 받아서 구현할 수 있다. public class AinterfaceImpl implements Ainterface { @Override public void funcA() { System.out.println("AAA"); } } 델..
지난 [디자인 패턴] - 2. 어댑터 패턴 (Adapter Pattern)에 이어서 유사한 형태의 브릿지 패턴에 대해 설명해보려고 한다. 브릿지 패턴이란.. 브릿지 패턴은 "구현(implementation)으로부터 추상(abstraction) 레이어를 분리하여 이 둘이 서로 독립적으로 변화할 수 있도록 한다." 즉 기능과 구현에 대해서 두 개를 별도의 클래스로 구현을 한다. (두개의 다른 계층은 하나는 추상, 하나는 구현이다. 이는 서로 다른 계층의 커플링을 약화시키며 협력은 가능하도록 하는 패턴이다) 브릿지 패턴 클래스 다이어그램 Abstraction 기능 계층의 최상위 클래스이며 추상 인터페이스를 정의한다. Implementor에 대한 레퍼런스를 유지한다. 구현 부분에 해당하는 클래스를 인스턴스를 가..
저번 강의 [디자인 패턴] - 1. 전략(Strategy) 패턴 에 이어서 이번 포스팅에는 '어댑터 패턴'에 대한 내용을 정리하고자 한다. 어댑터 패턴이란... 어댑터 패턴은 연관성이 없는 두 객체를 묶어 사용할 때 쓰이는 패턴이다. (= 클라이언트가 요구하는 인터페이스와 재사용하려는 모듈의 인터페이스가 일치하지 않을 때 사용할 수 있는 패턴) 어댑터 패턴이 적용된 예는 SLF4J라는 로깅 API이다. SLF4J는 단일 로깅 API를 사용하면서 자바 로깅, log4j, LogBack 등의 로깅 프레임워크를 선택적으로 사용할 수 있도록 해 주는데, 이 때 SLF4J가 제공하는 인터페이스와 각 로깅 프레임워크를 맞춰 주기 위해 어댑터를 사용하고 있다. 어댑터 패턴은 (SOLID 원칙에서 OCP)개방 폐쇄 원..
특정 디자인 패턴을 정리하기 이전에 기본적으로 디자인 패턴이 뭔지 알아야 할 것이다. 디자인 패턴이란? 객체 지향 설계는 소프트웨어로 해결하고자 하는 문제를 다루면서, 동시에 재설계 없이 또는 재설계를 최소화하면서 요구 사항의 변화를 수용할 수 있도록 만들어 준다. 객체 지향 설계를 하다 보면, 이전과 비슷한 상황에서 사용했던 설계를 재사용하는 경우가 발생한다. 이런 설계는 특정 상황에 맞는 해결책을 빠르게 찾을 수 있도록 도와주는데, 이렇게 반복적으로 사용되는 설계는 클래스, 객체의 구성, 객체 간 메시지 흐름에서 일정 패턴을 갖는다. 이런 패턴을 습득함으로써 다음과 같은 이득을 얻을 수 있다. 상황에 맞는 올바른 설계를 더 빠르게 적용할 수 있다. 각 패턴의 장단점을 통해서 설계를 선택하는데 도움을 ..