2025/10 3

[7주차-2] 디자인패턴 추가조사 - 데코레이터 패턴

커피메이커에 추가할만한 디자인 패턴에 대해서 알려달라고 제미나이에게 물어봤더니, '데코레이터 패턴'을 조금 더 조사해보라는 조언을 주었다. 1. 데코레이터 패턴옷을 입는 것은 데코레이터 패턴의 좋은 예다.링크에서 설명하는 바에 따르면, 추울 때 두꺼운 옷을 입거나 비올 때 방수점퍼를 입음으로써 나의 기능?을 쉽게 '확장'할 수 있지만, 옷은 내 일부가 아니기에 더우면 벗어버리기도 쉽다는 장점이 있다. 2. 데코레이터 패턴의 구조 - Component (Interface) : 원본 객체와 장식된 객체 모두를 묶는 역할 - ConcreteComponent : 원본 객체 (데코레이팅 할 객체) - Decorator : 추상화된 장식자 클래스 => 원본 객체를 합성(composition)한 wrappee ..

Develop/Java 2025.10.18

[7주차] 디자인패턴 기초실습

1. 디자인 패턴 기초디자인 패턴 : 가장 효율적이고 검증된 설계 방법으로, SOLID 원칙을 코드에 실제로 녹여내는 가장 실용적인 방법 중 하나.- 대표적인 디자인 패턴 1) 전략 패턴 :: 알고리즘을 쉽게 바꾸는 것이 목표인 패턴. OCP의 정석! - 알고리즘(전략)을 통째로 갈아 끼울 수 있게 만드는 패턴. - 이전 실습인 커피메이커에서 if/else문으로 조건문을 만들어 결제수단을 만들면, 결제수단이 새로 추가된다면 if문이 늘어나고 수정도 불편해진다! 즉 OCP 원칙을 적용해 코드를 수정하기 위해 전략 패턴을 사용할 수 있음. (결제수단의 전략을 클래스로 구현하기) 2) 팩토리 메소드 패턴 :: 직접 'new'하지 않고 객체 생성 방법을 공장에 대신 깔끔히 맡기는(위임하는) 패턴 ..

Develop/Java 2025.10.15

[6주차] 커피메이커 v2 리팩토링

1. S : 단일 책임 원칙 (SRP) 적용 - 문제점 : SRP 원칙은 단일 책임 원칙으로써, 한 클래스는 한 가지 책임에만 집중해야 한다! 그러나 현재 Manager 클래스의 상태를 보면,public class Manager { private final Menu menu; private final CoffeeFactory factory; private final CoffeeMaker maker; public Manager(Menu menu, CoffeeFactory factory, CoffeeMaker maker) { this.menu = menu; this.factory = factory; this.maker = maker; } public void takeOrder(String name,..

Develop/Java 2025.10.11