일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 파이썬
- 차원축소
- 코테
- python
- 머신러닝
- numpy 기초
- 넘파이 배열
- 넘파이
- 자바
- NumPy
- 코딩테스트실력진단
- 네트워크 기초
- Machine Learning
- 데이터 마이닝
- 기계학습
- ack
- 코드트리
- 합성곱 신경망
- 넘파이 기초
- cpp class
- 클러스터링
- 디자인 패턴
- lambda
- java
- cpp
- c++
- 코딩테스트
- Design Pattern
- 데이터 분석
- OOP
- Today
- Total
목록Design Pattern (5)
준비하는 대학생
퍼사드 패턴이란? 퍼사드(Facade)는 건물의 정면을 의미하는 단어로, 여기서는 복잡한 시스템의 '앞면'이라는 의미로 사용됩니다. 퍼사드 패턴은 클라이언트와 복잡한 시스템 사이에 간편한 인터페이스를 제공하는 구조적 패턴입니다. 이렇게 하면 복잡한 시스템을 더욱 단순하게 보이게 만들어, 클라이언트가 시스템을 쉽게 이해하고 사용할 수 있게 합니다. 퍼사드 패턴의 구조 퍼사드 패턴은 다음 세 가지 주요 구성 요소로 이루어져 있습니다. 퍼사드(Facade): 클라이언트에게 간편한 인터페이스를 제공합니다. 내부 시스템의 기능을 단순화된 메소드로 제공하며, 이를 통해 클라이언트가 시스템에 접근할 수 있게 합니다. 시스템 클래스(System Classes): 시스템의 복잡한 기능을 담당하는 클래스들입니다. 이 클래..
데코레이터 패턴(Decorator Pattern)은 객체지향 프로그래밍에서 객체의 기능을 동적으로 추가하거나 변경할 수 있는 디자인 패턴입니다. 데코레이터 패턴은 런타임 시에 객체에 새로운 기능을 추가하거나 기존 기능을 변경하는 데 사용되며, 코드의 수정 없이도 객체의 행위를 변경할 수 있습니다. 1. 데코레이터 패턴의 구조 데코레이터 패턴은 다음과 같은 구성 요소로 이루어져 있습니다: Component: 인터페이스 또는 추상 클래스로, 모든 객체가 구현해야 하는 공통의 기능을 정의합니다. ConcreteComponent: Component를 구현하는 실제 객체로, 기본 기능을 제공합니다. Decorator: Component를 구현하는 추상 클래스로, ConcreteComponent에 추가 기능을 제공..
Observer Pattern 개요 Observer Pattern은 객체 간에 일대다 관계를 정의하는 디자인 패턴 중 하나입니다. 이 패턴은 객체들 사이에 느슨한 결합을 제공하며, 객체의 상태 변화에 대한 다른 객체들의 자동 업데이트를 가능하게 합니다. Observer Pattern은 Subject(주체)와 Observer(관찰자)로 구성됩니다. Subject 객체는 상태를 가지며, 상태가 변경되었을 때 Observer들에게 알림을 보냅니다. Observer 객체는 Subject 객체의 상태를 관찰하며, 상태가 변경될 때마다 업데이트를 받습니다. Observer 패턴은 다음과 같은 구성 요소로 이루어져 있습니다. Subject: Observer 객체들을 관리하는 객체로, Observer를 추가, 제거, ..
Strategy pattern 이란? Strategy pattern은 객체지향 디자인 패턴 중 하나로, 동일한 문제를 해결하는 여러 알고리즘 중에서 필요에 따라 적합한 알고리즘을 선택하여 사용할 수 있도록 하는 패턴입니다. 이 패턴을 사용하면 알고리즘과 클라이언트 코드가 독립적으로 변화할 수 있으며, 새로운 알고리즘을 추가하거나 기존 알고리즘을 변경하더라도 클라이언트 코드를 수정하지 않아도 되는 장점이 있습니다. Strategy pattern 구현 방법 Strategy pattern을 구현하는 방법은 다음과 같습니다. 알고리즘을 캡슐화한 인터페이스를 정의합니다. 각각의 알고리즘을 구현하는 클래스를 작성합니다. 클라이언트 코드에서 필요에 따라 적절한 알고리즘을 선택하여 사용합니다. 자바 예시 코드 예를 들..
SOLID 디자인 원칙 중 하나인 SRP(Single Responsibility Principle)는 코드의 유지보수성과 확장성을 높이기 위해 매우 중요합니다. 이번 글에서는 SRP를 따르는 자바 코드를 작성하는 방법과 이를 적용하면 어떤 장점이 있는지에 대해 자세히 알아보겠습니다. SRP란? SRP는 한 클래스는 단 하나의 책임만 가져야 한다는 원칙입니다. 클래스가 담당하는 책임이 너무 많아지면 코드가 복잡해지고 유지보수성이 떨어지게 됩니다. 또한, 한 가지 책임을 수행하는 클래스가 여러 곳에서 사용될 경우, 한 쪽에서 수정이 이루어지면 다른 쪽에서도 영향을 받게 되어 시스템 전체의 안정성에 영향을 미칠 수 있습니다. SRP를 따르는 예시 다음은 SRP를 따르는 자바 코드의 예시입니다. public c..