본문 바로가기

디자인패턴3

상속(Inheritance)과 구성(Composition) 디자인 패턴을 학습하면서 구성이라는 단어를 마주했다. 처음에는 ~ has A 정도로 그저 이해하고 넘어갔었다. 하지만 읽으면 읽을수록 상속과 구성이라는 단어가 계속해서 번갈아서 언급되니 이 단어에 대한 정확한 이해가 있어야 문맥을 정확하게 이해할 수 있었다. - 상속의 장점? 먼저 우리가 상속을 사용하는 이유는 다양하다. 코드의 재사용, 변화에 대한 유연성 등 여러 장점들을 생각하고 사용하는데 실상은 상속을 정확하게 이해하고, 이를 바탕으로 적절하게 사용해야 이런 상속의 장점들을 발현시킬 수 있으며 그렇지 않은 경우 오히려 강한 결합을 가진 즉, 코드의 유연성을 해치게 된다. - 상속이란 상속은 부모 클래스(상위 클래스 혹은 슈퍼 클래스) 와 자식 클래스(하위 클래스) 관계를 만들어 자식 클래스는 부모클.. 2023. 2. 10.
디자인패턴 - 옵저버 패턴 (Observer Pattern) 1. 옵저버 패턴이란 - 옵저버 패턴은 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 1대다 (one-to-many) 의존성을 정의한다. - 디자인 원칙인 변경 가능성이 있는 부분과 그렇지 않은 부분을 분리하고, 구현보다는 인터페이스에 맞추어 프로그래밍하며, 상속보다는 구성을 활용하는 원칙을 준수한다. - 추가로 느슨한 결합을 사용하여 프로그램의 유연성이 매우 좋아진다. 느슨한 결합이란, 객체들의 상호작용은 가능하지만, 서로에 대해서 잘 모르는 관계를 이야기한다. 즉 주제는 옵저버의 구상 클래스가 무엇인지, 어떤 역할을 하는지에 대해 알 필요가 없으며 주제나 옵저버가 달라져도 각 주제 혹은 옵저버를 구현한다는 조건만 만족하면 수정이 자유롭다. 구.. 2023. 2. 6.
디자인패턴과 전략패턴 디자인 패턴이란? 프레임워크나 라이브러리를 이용하면 다른 사람이 만들어 놓은 방대한 양의 코드를 그대로 활용하여 수많은 기능을 사용할 수 있다. 적절한 구성요소를 선택해서 제 자리에 넣기만 하면 해당 기능을 구현할 수 있기 때문이다. 하지만 이런 기능들이 어플리케이션의 구조를 만드는데, 관리하기 용이하게 하는데에 도움을 주지는 않는다. 이를 위해서 라이브러리보다 더 높은 단계에서 소프트웨어 구조에 대해서 이해하기 쉽고, 관리하기 유연하게 만들어주는 것이 바로 디자인 패턴이다. 이런 디자인 패턴에는 몇가지 원칙이 있다. 어플리케이션에서 달라지는 부분과 달라지지 않는 부분을 분리한다. 구현보다는 인터페이스에 맞춰서 프로그래밍 한다. 상속보다는 구성을 활용한다. 먼저 달라지는 부분과 달라지지 않는 부분을 분리.. 2022. 12. 28.