일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 정규화
- 인공지능
- DCP
- 머신러닝
- 대학원 월급
- API
- 디자인패턴
- 영화 api
- 로스트아크
- python
- 디자인 패턴
- 통계학
- C# 프로젝트
- 대학원 급여
- 의료 ai 대학원 월급
- 활성화 함수
- 파이썬 경사하강법
- MLP
- 코딩테스트
- 자바 영화 api
- 인공지능 깃 버전관리
- 경사하강법
- 백준
- 딥러닝
- 파이썬
- 자바
- 딥러닝 실험 깃 버전관리
- Dehaze
- 자바 프로젝트
- pandas
- Today
- Total
목록Computer programming/Design patterns (7)
대학원 일기

프로토타입 패턴(Prototype Pattern) 생성할 객체들의 타입이 프로토타입인 인스턴스로부터 결정되도록 하며, 인스턴스는 새 객체를 만들기 위해 자신을 복제(clone)하는 패턴 Prototype: 인스턴스를 복사하여 새로운 인스턴스를 만들기 위한 메소드를 결정 ConcretePrototype: 인스턴스를 복사해서 새로운 인스턴스를 만드는 메소드를 실제로 구현 Client: 인스턴스 복사 메소드를 사용해서 새로운 인스턴스를 만든다 장점 객체를 생성해 주기 위한 별도의 객체 생성 클래스가 불필요하다. 객체의 각 부분을 조합해서 생성되는 형태에도 적용 가능하다. 단점 생성될 객체들의 자료형인 클래스들이 모두 clone() 메서드를 구현해야 한다.

팩토리 메소드 패턴(Factory Method Pattern) 팩토리 메소드 패턴(Factory Method Pattern) - 객체를 생성하기 위한 인터페이스를 정의하고, 어떤 클래스의 인스턴스를 생성할지에 대한 처리는 서브클래스가 결정하는 패턴 - 객체 생성을 처리하는 팩토리를 외부에 두지 않고, 서브 클래스에 둠으로써 객체 생성부를 캡슐화 한다. 수퍼 클래스와 서브 클래스의 팩토리가 서로 연관 관계를 갖되 코드 상으로는 완전히 분리시킬 수 있다. 장점 객체들을 한 곳에서 관리할 수 있다는 장점 유연하고 확장성 있는 구조 리턴 값으로 상황에 따라 서로 다른 객체를 반환 가능 단점 새로운 하위클래스를 정의 불필요하게 많은 클래스를 정의

추상 팩토리 패턴(Abstract Factory Pattern) 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴 -> 클라이언트와 팩토리에서 생성되는 객체를 분리시킬 수 있다. AbstractFactory: 개념적 제품에 대한 객체를 생성하는 연산으로 인터페이스를 정의 ConcreteFactory: 구체적인 제품에 대한 객체를 생성하는 연산을 구현 AbstractProduct: 개념적 제품 객체에 대한 인터페이스를 정의 ConcreteProduct: 구체적으로 팩토리가 생성할 객체를 정의하고, AbstractProduct가 정의하는 인터페이스를 구현 Client: AbstractFactory와 AbstractProduct 클래스에 선언된 인터페이..

빌더 패턴(Builder Pattern) 복잡한 객체를 생성하는 방법을 정의하는 클래스와 표현하는 방법을 정의하는 클래스를 별도로 분리하여, 서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공하는 패턴 Director : Builder를 이용하여 객체를 생성(반환) Builder : 객체를 생성하는 방법과 형태를 가진 인터페이스 ConcreteBuilder : Builder 인터페이스의 구현체로 구현하고자하는 각 객체의 특징(형태)을 정의 Product : Director가 Builder를 이용해 생성하는 결과 객체 장점 객체 생성에 필요한 파라미터의 의미를 코드 단에서 명확히 알 수 있다. (가독성이 좋다.) 생성에 필요한 파라미터가 추가될 때 마다, 생성자 오버로딩을 안해도 된다. 단점 추..

싱글톤 패턴(Singleton Prattern) 해당 클래스의 인스턴스가 하나만 생성이 되는 것을 보장하며 어디서든지 그 인스턴스에 접근이 가능하도록 하는 패턴 클래스에 대한 단일 객체 생성 전역 객체 제공 공유된 리소스에 대한 동시 접근 제어 하나의 인스턴스만을 유지하기 위해 인스턴스를 생성할 때, 생성자에 private 접근 제어자를 지정하고, 유일한 단일 객체를 반환할 수 있도록 정적 메소드를 지원해야 한다. - 클래스에 instance인 private 멤버 변수를 선언 - 생성자를 private으로 선언하여 외부에 노출시키지 않음 - static으로 전역에서 접근이 가능한 정적 메소드를 생성해서 인스턴스를 반환함 장점 객체를 여러번 생성할 필요가 없고, 기존에 생성된 것을 가져다 쓰기 때문에 메모..
이전글 [Design Patterns] 객체 지향 디자인의 기본 5원칙(SOLID) [Design Patterns] 객체 지향 디자인의 기본 5원칙(SOLID) 서론 객체 지향 설계에서 요구 사항에 따라 소스 코드를 쉽게 변경하고, 다른 사람과 협업할 때 복잡한 구조를 단순화하여 설계하는 디자인 패턴의 중요성을 파악하고, 객체지향 디자인의 기 kys0411.tistory.com 디자인 패턴의 분류 - 생성 패턴 - 구조 패턴 - 행위 패턴 생성 패턴 - 생성패턴은 인스턴스를 만드는 절차를 추상화하는 패턴이다. - 객체 관련 로직을 숨긴다. 생성 패턴의 종류 싱글톤 패턴 빌더 패턴 팩토리 메소드 패턴 프로토타입 패턴 추상 팩토리 패턴 구조 패턴 - 구조패턴은 클래스나 객체를 조합해 더 큰 구조를 만드는 패..

서론 객체 지향 설계에서 요구 사항에 따라 소스 코드를 쉽게 변경하고, 다른 사람과 협업할 때 복잡한 구조를 단순화하여 설계하는 디자인 패턴의 중요성을 파악하고, 객체지향 디자인의 기본 원칙들과 디자인 패턴의 개념과 종류에 대해 알아보겠다. 객체지향 디자인 패턴 디자인 패턴이란? 소프트웨어를 설계하거나 프로그램을 개발할 때, 반복적으로 일어나는 문제 혹은 복잡한 코드들을 재사용하기 좋은 형태로 특정 규약을 만들어서 정리하여 복잡한 코드 집합의 구조적인 문제를 해결하는 방법이다. 즉, 효율적인 코드를 만들기 위한 방법이라고 기억하면 된다. 객체지향 디자인의 기본 5원칙(SOLID) 1. 단일 책임 원칙 (SRP: Single Responsibility Principle) 클래스는 하나의 책임만을 가져야 한..