본문 바로가기

디자인패턴5

[디자인패턴 - 팩토리패턴] 팩토리패턴이란? 예제를 통해 이해하기 (Factory Pattern) for Head First Design Patterns (헤드퍼스트 디자인 패턴 참조) # 팩토리패턴## 팩토리 패턴의 종류팩토리패턴의 종류는 크게 아래 2가지가 있다.1. 팩토리 메서드 패턴2. 추상 팩토리 패턴번외 심플 팩토리 이제 하나씩 알아보자!## 팩토리 메서드 패턴- 팩토리 메서드는 심플팩토리에서 팩토리 자체를 추상화를 시키고 각각의 구체적인 팩토리 클래스가 특정 타입의 객체 생성을 담당하는 패턴- 새로운 타입의 객체를 추가하려면 새로운 팩토리 클래스만 추가 하면 되기 때문에 OCP를 준수한다. 1. 추상클래스로 팩토리와 로봇을 만들어준다.abstract class 로봇 { abstract fun 설명(): String}abstract class 로봇팩토리(){ abstract fun 로봇제작() : 로봇 } 2. 구체적인 로봇 클래스를 정의 해준다.class 뛰는로봇.. 2024. 4. 30.
[디자인패턴 - 데코레이터패턴] 데코레이터패턴이란? 예제를 통해 이해하기 (Decorator Pattern) for Head First Design Patterns (헤드퍼스트 디자인 패턴 참조) # 데코레이터 패턴 ## 정의 데코레이터 패턴은 기존 코드를 수정하지 않고도 기능을 동적으로 추가하거나 변경할 수 있게 해주는 디자인 패턴이다. 이 패턴은 구조 패턴의 한 종류로, 기본적인 객체에 추가적인 기능을 부여하기 위해 '감싸는' 형태로 적용된다. 이를 통해 기존 클래스를 수정하지 않고도 새로운 기능을 추가할 수 있다. ### 장점 기존 코드를 수정하지 않고도 기능을 추가하거나 변경할 수 있다. 단일 책임 원칙을 준수한다. 각 데코레이터는 자신의 기능만을 추가하므로 기능이 분리되어 코드의 유지보수가 쉽다. ## 예제 시나리오 어느 한 사람이 카페에 가서 아이스티의 샷 추가를 하는 상황이다. ### 구현 순서 1. 음료를 나타내는 Beverage 인터페이스 생성 (음료 설명, 가격 반환 메서드 포함.. 2024. 3. 10.
[디자인패턴 - 옵저버패턴] 옵저버패턴이란? 예제를 통해 이해하기 (Observer Pattern) for Head First Design Patterns (헤드퍼스트 디자인 패턴 참조) # 옵저버 패턴 먼저 책에서 나온 옵저버 패턴의 정의를 살펴보자! 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의한다 한줄로 정리 하자면 일련의 객체 사이에서 일대다 관계를 정의 한다라고 보면 된다. 책에서는 기상 정보를 예를 들었다 나는 주식 가격 변동 모니터링 서비스으로 예를들겠다. 시장에서 주식의 가격이 변하면 이 정보를 받아서 각각의 투자자에게 알려주는 시스템이라고 치겠다. 우선 옵저버 패턴은 일대다라고 했으니 주식이 일에 해당하고 그 주식 투자자가 다에 해당한다고 보면 된다. 주식 가격 변동 모니터링 서비스를 옵저버 패턴으로 구현하면 주식 가격이 변하면 거기에 의존하는 모든 투자자들한테 알림이 간다. 위와 같은 시나리.. 2024. 2. 15.
[디자인패턴 - 전략패턴] 전략패턴이란? 예제를 통해 이해하기 (Strategy Pattern) for Head First Design Patterns (헤드퍼스트 디자인 패턴 참조) 이번 포스팅을 시작하기 앞서 개념과 포스팅의 전체적인 내용은 한빛미디어 / 에릭 프리먼 , 엘리자베스 롭슨 / 헤드 퍼스트 디자인 패턴(개정판)을 참조했음을 밝히고 시작하겠다. # 전략패턴(Strategy Pattern)이란? 전략 패턴 ( Strategy Pattern ) 은 알고리즘 군을 정의하고 캡슐화해 서 각각 의 알고리즘 군을 수정해서 쓸 수 있게 해 줍니다. 전략 패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있습니다. 위에서 나오는 말은 책에서 가져온 전략패턴의 사전적 정의이다. 나는 처음에 저런 말을 듣고 전혀 이해가 가지 않았다. 그러므로 디자인패턴을 전혀 모른 상태에서 저 내용이 이해가 안 가는 건 정상이니 너무 걱정 안 해도 될 것이다. 이제 아래에서 예제를.. 2024. 1. 31.
안드로이드 디자인패턴 - MVC, MVP, MVVM 패턴 개발자가 되기 위해 기본인 디자인 패턴(MVC, MVP, MVVM) 패턴을 정리해 보려고 한다. ◆ 공통 용어 ● Model 내부적으로 쓰이는 데이터를 저장하고, 처리하는 역할을 한다. 흔히 '비즈니스 로직'이라고 부른다. View, Presenter 등 다른 어떤 요소에도 의존적이지 않은 독립적인 영역이다. ● View 사용자 인터페이스(UI)라 불리는 영역이다. 안드로이드에서는 Activity, Fragment가 대표적인 예시이다. 각 디자인 패턴에 따라 그 용도에 차이가 있다. # MVC (Model + View + Controller) ● Controller 어플리케이션이 실행하게 되면 작동하는 컨트롤러이다. Model과 View를 서로 연결해주는 역할을 하고 유저에게 액션을 받아 처리하는 역할까.. 2022. 1. 14.