728x90

DesignPattern 3

의존성 역전 원칙(Dependency Inversion principle)

의존성 역전 원칙 (Dependency Inversion Principle) 의존성 역전 원칙(DIP)은 SOLID 원칙 중 하나입니다. SOLID는 객체 지향 디자인을 더욱 이해하기 쉽고 유연하며 유지보수 가능하게 만들기 위한 다섯 가지 디자인 패턴 집합입니다. 의존성 역전 원칙을 이해하기 위해서 우리는 반드시 제어의 역전과 의존성 주입 개념에 대해서 이해해야 합니다. Inversion of Control (제어의 역전) 제어란 무엇일까요? 그리고 역전은 무엇을 의미할까요? 이러한 질문에 답해보겠습니다. 먼저 제어와 역전을 알아봅시다. 제어란 코드의 실행 순서를 결정하는 흐름을 말합니다. 아래의 예시와 같이 코드를 작성하면 코드는 위에서부터 아래로 예측 가능한 방식으로 실행됩니다. a = 10 b = ..

DesignPattern 2023.08.13

팩토리 메소드 패턴

팩토리 메소드 패턴은 어떤 상황에 자주 쓰일까? 우리가 생성하는 Overloading 을 한 Constructor 는 어떠한 의미를 가지기 힘들다 예를 들면 아래와 같이 말이다. 왜? 어떤 이유로 여러개의 생성자를 만들었는지 작성자 말고는 의도를 파악하기가 힘들다. 좀 더 자세하게 예시를 들어서 공부해보도록 하자. 아래의 코드를 한번보자. 간단하게 배를 나타내는 클래스이다. 우리는 이제 Factory Pattern 을 통해서 고객이 이름과 이메일을 넣어 주문을 넣으면 배를 만들어주는 클래스를 만들것이다. 위와 같은 클래스는 어떤 문제가 있을까? 우리가 만약 상품을 추가한다고 하면 계속해서 if 문을 추가해야 하는 문제점이 발생할 것이다. 계속해서 요구사항에 따른 기존 로직의 코드의 수정이 일어날 것이고,..

DesignPattern 2021.10.30

싱글톤(Singleton) Pattern

이번 시간에는 그간 묵혀놨던 디자인 패턴을 좀 공부해보려고 한다. 요즘 코드를 치면서 느끼는게 이런 디자인 패턴을 잘 몰라서 뭔가 설계를 할때 어려움을 느끼는게 아닌가? 라는 생각도 든다. 뭐 실력 문제 겠지만, 이런 것을 더 배워나가다 보면 앞으로 조금 더 수월하게 설계를 할 수 있을 거란 생각에 공부해 보려고 한다. 싱글톤 패턴 다들 많이 사용해 봤을 것 이고, 유명한 패턴이다. 개념은 인스턴스를 오직 한개만 제공하기 위해 이용하는 패턴이다. 이 패턴이 필요한 이유? 예를 들면 우리가 설정을 하는 메뉴를 여러 인스턴스로 만들게 된다면 인스턴스 마다 설정이 달라지는 등 많은 문제를 발생시킬 수 있다. 어플리케이션에서 오직 한개로 유지해야할 객체를 싱글톤 패턴을 이용해 제공하거나 접근하도록 해야한다. 위..

DesignPattern 2021.10.28
728x90