본문 바로가기

프로그래밍 강의 메모/코딩으로 학습하는 GoF의 디자인 패턴_백기선

(24)
구조 관련 디자인 패턴 > 컴포짓 패턴(Composite Pattern) https://inf.run/6Shr 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 컴포짓 패턴 구조관련 디자인 패턴. 그룹 전체와 개별 객체를 동일하게 처리할 수 있는 패턴. 클라이언트 입장에서 ‘전체’나 ‘부분’이나 모두 동일한 컴포넌트로 인식할 수 있는 계층 구조를 만든다. 트리 구조를 구성해야하는 제한이 있다. 하지만 트리구조로 표현할 수 있는 게 일상 생활에 많기 때문에 트리구조라는 제한이 있더라도 컴포짓 패턴으로 작성되는 경우가 많다. 컴포짓 디자인 패턴을 적용하기 전..
구조 관련 디자인 패턴 > 브릿지 패턴(Bridge Pattern) https://inf.run/6Shr 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 브릿지 패턴 구조 관련 디자인 패턴. 예제는 챔피언과 스킨으로 분리하여 연결하는 것이었다. 추상적인 것과 구체적인 것을 분리하여 연결하는 패턴. 하나의 계층 구조일 때 보다 각기 나누었을 때 독립적인 계층 구조로 발전시킬 수 있다. 브릿지 패턴을 사용하지 않고 하나의 계층구조로 코드를 작성하면, 계층 구조가 커지고, 다른 클래스와 닮아있고, 여러 조합이 생기고, 중복코드가 많은 것 같은 느낌을 줄..
구조 관련 디자인 패턴 > 어댑터 패턴(Adapter Pattern) https://inf.run/6Shr 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 어댑터 패턴 구조 관련 디자인 패턴. 기존 코드를 클라이언트가 사용하는 인터페이스의 구현체로 바꿔주는 패턴. 클라이언트가 사용하는 인터페이스를 따르지 않는 기존 코드를 재사용할 수 있게 해준다. 라이브러리를 랩핑할 때 자주 사용하는 패턴이다. 클라이언트가 Target이라는 인터페이스를 의존하고 있다. 기존 코드인 Adaptee가 이 Target을 실체화하고 있지 않아 클라이언트가 Adaptee를 ..
객체 생성과 관련 디자인 패턴 > 프로토타입 패턴(Prototype Pattern) https://inf.run/6Shr 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 프로토타입 패턴 객체 생성 관련 디자인 패턴. 기존 인스턴스를 복제하여 새로운 인스턴스를 만드는 방법. 복제 기능을 갖추고 있는 기존 인스턴스를 프로토타입으로 사용해 새 인스턴스를 만들 수 있다. Basic implementation Prototype registry implementation 프로토타입 패턴의 장점 1. 복잡한 객체를 만드는 과정을 숨길 수 있다. 2. 기존 객체를 복제하는 과정..
객체 생성과 관련 디자인 패턴 > 빌더 패턴(Builder Pattern) https://inf.run/6Shr 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 빌더 패턴 객체 생성 관련 디자인 패턴. 동일한 프로세스를 거쳐 다양한 구성의 인스턴스를 만드는 방법. 복잡한 객체를 만드는 프로세스를 독립적으로 분리할 수 있다. 인스턴스의 세부 설정들을 다양한 구성으로 생성할 수 있는데 이 방법을 동일 프로세스로 설정할 수 있다. Before 코드로 보는 빌더 패턴의 필요성 1. 사용자가 일부만 설정하여 불완전한 인스턴스가 생성될 가능성이 있다. 여행 계획의 ..
객체 생성과 관련 디자인 패턴 > 추상 팩토리 패턴(Abstract Factory Pattern) https://inf.run/6Shr 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 추상 팩토리 패턴 객체 생성 관련 디자인 패턴. 서로 관련있는 여러 객체를 만들어주는 인터페이스. 구체적으로 어떤 클래스의 인스턴스를 사용하는지 감출 수 있다. 클라이언트 코드에서 구체적인 클래스의 의존성을 제거한다. 구체적인 팩토리에서 구체적인 인스턴스를 만드는 것까지는 팩토리 메서드 패턴과 굉장히 유사하지만, 초점이 팩토리를 사용하는 클라이언트 쪽에 있다. 추상 팩토리 패턴의 목적은 팩토리에서..
객체 생성과 관련 디자인 패턴 > 팩토리 메서드 패턴(Factory Method Pattern) https://inf.run/6Shr 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 팩토리 메서드 패턴 객체 생성 관련 디자인 패턴. 다양한 구현체가 있고, 그 중에서 특정한 구현체를 만들 수 있는 다양한 팩토리를 제공할 수 있는 패턴이다. 구체적으로 어떤 인스턴스를 만들지는 서브 클래스가 정한다. 어떤 인스턴스를 생성하려는 책임을, 구체적인 클래스가 아니라, 추상적인 인터페이스의 메서드로 감싸기 위한 패턴이다. 팩토리 역할을 할 Creator 인터페이스를 만들고, 이 인터페이스..
객체 생성과 관련 디자인 패턴 > 싱글톤 패턴(Singleton Pattern) https://inf.run/6Shr 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 싱글톤 패턴 객체 생성 관련 디자인 패턴. 인스턴스를 오직 한 개만 제공하는 클래스. 시스템 런타임, 환경 세팅에 대한 정보 등, 인스턴스가 여러 개일 때 문제가 생기는 경우 싱글톤 패턴을 사용한다. 인스턴스를 오직 한 개만 만들어 글로벌하게 접근할 수 있는 클래스가 필요한 경우 싱글톤 패턴을 적용한다. 가장 간단하게 구현한다면 private 생성자와 public static 메서드를 사용하여 구..