전체 글

밥세공기

    [디자인 패턴] 템플릿 메소드 패턴

    템플릿 메서드란? 부모 클래스에서 알고리즘의 구조를 정의하지만, 해당 알고리즘의 구조를 변경하지 않고 자식 클래스들이 알고리즘의 특정 단계들을 오버라이드하여 행동하는 디자인 패턴 Why 어떤 문제가 있길래? 전체적인 동작은 같지만, 세부적인 동작이 다를때 예를들어, 레스토랑에서 주문을 한다고 생각해 보겠습니다. 한정된 수량만 받기 때문에 예약만 받는다고 가정하겠습니다. public class AppOrder { public void processOrder() { takeOrder(); // 주문 받기 provideOrderSummary(); // 주문 요약 provideReservationNo(); // 예약 번호 제공 } } public class CallOrder { public void proces..

    [디자인 패턴] - 전략 패턴

    전략 패턴이란 객체가 할 수 있는 행위(기능)들 각각을 전략으로 만들어 놓고 사용하며, 동적으로 전략 수정이 가능한 패턴 무슨 문제가 있길래? 왜 이런 패턴이 나왔을까 한번 천천히 보겠습니다. class Subway{ public void take() { System.out.println("카드를 찍고 들어갑니다."); } } class Bus{ public void take() { System.out.println("카드를 찍고 들어갑니다."); } } class Airplain{ public void take() { System.out.println("표를 내고 들어갑니다."); } } class Train { public void take() { System.out.println("표를 내고 들어갑..

    SOLID 원칙

    객체지향의 설계 원칙 우리가 좋은 코드를 작성하고자 하는 가장 큰 이유는 서비스를 잘 운영하기 위해서라고 생각합니다. 결국 돈과 관련되어 있기 때문에 유지 관리하기 쉽고 확장성을 위해 유연한 소프트웨어를 만들고자 하는게 아닌가 싶습니다. 많은 사람들이 객체지향을 하면서 좋은 코드를 작성하기 위해 항상 말하는 SOLID원칙에 대해서 알아보겠습니다. SRP (Single Responsibility Principle : 단일 책임 원칙) 하나의 클래스는 한 가지 책임만 가져야 한다. 또한 어떤 변화에 의해 클래스를 변경해야 하는 이유는 오직 하나 책임? 저는 책임이라는 말을 '행동' 이라는 단어에서 힌트를 얻었습니다. '너가 한 행동에 대한 책임을 가져라'와 같이 말이죠. 결국 여기서 말하는 책임은, 클래스가..