프로그래밍
-
[OOP] 디자인 패턴 - Decorator Pattern(데코레이터 패턴)프로그래밍 2024. 7. 17. 21:52
## 데코레이터 패턴(Decorator Pattern).객체에 추가적인 요건을 동적으로 첨가한다. 데코레이터는 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공한다. ## 커피 클래스를 구현해보자 - (1)우리가 수 많은 커피를 클래스로 구현한다고 했을때, 일반적으로 아래와 같은 구조를 생각하기 쉽다.나 또한 가장 먼저 이런 생각이 떠올랐었고,회사에 다니는 젊은 개발자들에게 물어봤을때도 위와 같은 구조를 우선적으로 많이 말씀하셨다. 하지만 조금만 더 고민해보면 이런 구조는 문제가 있는걸 알 수 있다. 커피는 너~무 많다.수십, 수백가지 되는 커피들이 있고,커피콩은 어떤것을 쓸 것이고두유를 첨가할 지 우유를 첨가할 지,샷은 얼마나 추가할 것인지,휘핑크림 넣고 빼고,이런것들을 고..
-
[OOP] 디자인 패턴 - Strategy Pattern(전략 패턴)프로그래밍 2024. 7. 16. 21:48
## 전략 패턴(Strategy Pattern).알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. ## 오리 클래스를 구현해보자오리를 프로그래밍으로 구현한다고 했을 때, 아래와 같은 구현을 많이 생각할 것이다. 나도 누군가가 갑작스레 오리 클래스를 구현해봐~ 라고 물었을때위와 같은 구조를 생각할 것 같은데이런 구조에는 어떤 문제점이 있을까? ### 문제점 1 - 서브클래스 코드 중복만약, 위의 RubberDuck처럼 실제로 날지 못하는 오리(NowWingsDuck)가 추가된다고 하자.해당 오리는 fly() 부분을 날지 못하게 하도록 따로 코드를 구현해야 할 것이고, 이것은 RubberDuck의 코드와 차이가 없는 중복코드 일 것이다. ### 문제점 2 - 코드 변경시 다른 오..
-
[OOP] Law of Demeter: 최소 지식 원칙프로그래밍 2024. 7. 11. 19:04
최소 지식 원칙, 소프트웨어 개발을 위한 가이드라인 중 하나이며, 특히 느슨한 결함(loose coupling)을 위한 방법 중 하나이다. ## 1987년, Ian Holland에 의해 제안되었다.요약해보면,Each unit should have only limited knowledge about other units: only units "closely" related to the current unit.(각 객체는 "밀접하게" 관계된 다른 객체들에 대해서 제한된 지식만 가져야 한다.)Each unit should only talk to its friends; don't talk to strangers.(각 객체는 그 친구와만 대화해야한다; 낯선이와 이야기하지 말아라.)Only talk to your..