인터페이스
·
디자인 패턴
인터페이스(interface) 특정 기능의 구현을 약속하기 위해 사용하는 형식 C++에서는 추상클래스를 사용하여 구현한다. class SampleInterface { public: virtual void print() = 0; virtual void input() = 0; } 응용 인터페이스를 사용하면 불필요한 함수의 노출을 막을 수 있다. class IInput { public: virtual void SetName(std::string name) = 0; virtual void SetAge(int age) = 0; }; class IOutPut { public: virtual std::string GetName() = 0; virtual int GetAge() = 0; }; class Person :..
Adapter 패턴
·
디자인 패턴
구조패턴 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴 어댑터 패턴(Adapter Pattern) ❤래퍼(Wrapper) 패턴으로도 부른다. ❤수정할 수 없던가, 예전의 코드라서 최신 코드로 수정을 해야할 필요가 있을 때 사용하는 패턴. ❤실생활에서 어댑터라 부르는 것과 동일한 역할을 한다고 볼수있다. → 110v 플러그를 220v로 변환해주는 110v→220v 어댑터 → usb a → usb b로 변환해주는 어댑터 ❤Adaptee와 Adapter의 개념을 가진다. Adaptee ❤수정할 수 없는 객체, 즉 예전 객체를 의미한다. ❤그대로 사용하기에는 어려움이 있어 최신 코드화 되어야 할 대상이 되는 객체를 의미한다. ❤110v에 해당한다. Adapter ❤Adaptee의 기능을 최신화하여 수행시켜주..
Proxy 패턴
·
디자인 패턴
구조패턴(Structual Patterns) 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴 프록시 패턴 ❤구조 패턴 중 하나 ❤이미 존재하는 객체의 흐름을 제어하고자 할 때 사용 (예시)객체 생성 카운팅 긴 시간이 필요한 작업에 대한 사전 처리 지연로딩 장점 ❤사이즈가 큰 객체(ex:이미지, 동영상)가 로딩되기 전에도 프록시를 통해 참조를 할 수 있다. ❤실제 객체의 public, protected 메소드들을 숨기고 인터페이스를 통해 노출시킬수있다. ❤로컬에 있지 않고 떨어져 있는 객체를 사용할 수 있다. ❤기존 객체에 대한 수정 없이, 원래 객체의 접근에 대해서 사전처리를 할 수 있다. ❤구조나 코드 구현이 간단하다 단점 ❤객체를 생성할때 한단계를 거치게 되므로, 빈번한 객체 생성이 필요한 경우 성..
UML
·
디자인 패턴
UML(Unified Modeling Language, 통합 모델링 언어) ❤소프트웨어 엔지니어링 분야에서 시스템 설계 시각화에 대한 표준화된 방법을 제공하기 위한 범용 모델링 언어 ❤소프트웨어 엔지니어들은 보통 UML사용보다는 각자의 방법으로 다이어그램을 생성한다. 그러나 이런 다이어그램에는 종종 UML의 요소가 포함된다. ❤크게 구조적 다이어그램, 행동 다이어그램으로 나뉜다. 구조적 UML 다이어그램 시스템의 정적 측면을 나타낸다. 모델링되는 시스템에 있어야 하는 사항과 구조를 강조한다. 소프트웨어 아키텍쳐(소프트웨어의 요소, 관계, 속성으로 구성되는 시스템의 구조)를 문서화하는데 광범위하게 사용된다. 종류 클래스 다이어그램 구성 요소 다이어그램 복합 구조 다이어그램 배포 다이어그램 개체 다이어그램 ..