인터페이스

2022. 9. 12. 00:59·디자인 패턴

인터페이스(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 : public IInput, public IOutput
{
	private:
		std::string name;
		int age;
	public:
		virtual void SetName(std::string _name) override
		{
			name = _name;
		}
		virtual void SetAge(int _age) override
		{
			age = _age;
		} 
		virtual std::string GetName() override
		{
			return name;
		}
		virtual int GetAge() override
		{
			return age;
		}
};

int main()
{
	Person* person = new Person();//4개 함수 모두 사용 가능.
	IInput* person_input = new Person();//Set의 2개 함수만 사용가능
	IOutput* person_output = new Person();//Get의 2개 함수만 사용가능

'디자인 패턴' 카테고리의 다른 글

Abstract Factory 패턴  (0) 2022.09.12
Factory 패턴  (0) 2022.09.12
Adapter 패턴  (0) 2022.09.12
Proxy 패턴  (1) 2022.09.12
UML  (0) 2022.09.12
'디자인 패턴' 카테고리의 다른 글
  • Abstract Factory 패턴
  • Factory 패턴
  • Adapter 패턴
  • Proxy 패턴
가든_
가든_
  • 가든_
    Code Garden
    가든_
  • 전체
    오늘
    어제
    • 글 목록 (60)
      • 프로그래밍 언어 (11)
        • JAVA (0)
        • C++ (2)
        • C# (9)
      • 개발툴 (24)
        • Visual Studio (0)
        • Visual Studio Code (1)
        • Eclipse (1)
        • Unity (19)
        • Unreal (0)
        • Spring (1)
        • SpringBoot (0)
        • Vue (2)
      • 디자인 패턴 (6)
      • 백엔드 (4)
        • MySQL (1)
        • Servlet (3)
      • 프론트엔드 (4)
        • HTML (3)
        • CSS (0)
        • Javascript (1)
      • 알고리즘 (10)
        • 공식 (3)
        • 백준 (6)
        • SW Expert Academy (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    chatGPT
    DI
    다이어그램 그리기
    행동 UML 다이어그램
    컴파일 상수
    Java
    Adapter 패턴
    상태공간트리
    HTML
    12738
    MVC
    오브젝터 어댑터
    Factory 패턴
    Abstract Factory 패턴
    Unity
    클래스 어댑터
    UniRX
    구조패턴
    스택
    Proxy 패턴
    Reflex
    구조적 UML 다이어그램
    RDBM
    런타임 상수
    SetTile
    Adaptee
    c#
    ()=>
    swea2112
    FixedUpdate
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
가든_
인터페이스
상단으로

티스토리툴바