디자인 패턴

인터페이스

가든_ 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개 함수만 사용가능