본문 바로가기

디자인 패턴2

[5] 팩토리 메소드 패턴 팩토리 메서드 패턴을 이용하여 불필요한 의존성을 없애는 방법에 대해 알아봅시다. 디자인 원칙중 하나가, 구현이 아닌 인터페이스를 바탕으로 개발하라는 것이였는데요 new를 이용해서 객체를 생성하는 것을 돌아보면 결국 특정 구현을 바탕으로 프로그래밍 하는 것이 됩니다. 어떤 객체를 생성할 때 조건이 붙게 되는 경우가 있을 것입니다. if(picnic){ duck = new MallardDuck(); } else if(hunting){ duck = new DecoyDuck(); } 위와 같이 특정 조건에 대해 서로 다른 구현체를 인터페이스에 대입하려면 저런 식의 조건문이 필요한데요 이런 코드가 있다는 건 결국 변경 혹은 확장할 때 동일한 코드를 다시 확인하고 추가/제거 해야한다는 뜻이 됩니다. 코드에서 구상 .. 2020. 10. 29.
[4] Decorator Pattern 오늘은 데코레이터 패턴에 대해서 간략하게 알아보고 예시를 통해 적용 방식에 대해서 확실히 이해해보는 시간을 가져보겠습니다. 데코레이터 패턴이란, 상속을 피하고 프로그램의 실행중에 동적으로 클래스를 "꾸며" 서로 다른 기능을 만들어내는 패턴입니다. 이 패턴을 알고 나면, 원래 클래스의 코드를 전혀 바꾸지 않아도 해당 객체에 새로운 임무를 부여할 수 있습니다. 문제 상황에 대한 이해 예시 문제 상황은 이렇습니다. 스타벅스 내부 시스템을 만든다고 가정을 하고, 판매하는 음료의 가격을 매기는 시스템을 구성해 봅시다. 음료에 대해 표현하기 위해서, Beverage 라는 클래스를 만들고 Beverage에 들어가는 요소들을 반영하기 위해 Beverage 클래스의 Property로 그 재료를 넣었습니다. 그리고 나서,.. 2020. 10. 28.