디자인 패턴
인터페이스
가든_
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개 함수만 사용가능