브릿지 패턴
:뭐뭐하는 주체를 표현할 때 사용하는 패턴(?)
:뭐뭐를 인터페이스로 구현하고, 뭐뭐에서 세부적으로 다른것들은 클래스로 구현한다.
:주체에 인자로 세부적으로 뭐뭐하는 행동들을 인자로 넣어주면, 뭐뭐하는 주체가 된다.
인사하는 사람을 표현해보자.
인사하는 방법은 헤어질때, 처음 만났을 떄, 아침인사, 점심인사, 저녁인사 등 여러가지가 있다.
다음과 같이 표현해보자
interface 인사
{
public void 인사하기();
}
class 아침인사 implements 인사
{
public void 인사하기(){
//아침인사하기 로직구현
}
}
class 저녁인사 implements 인사
{
public void 인사하기(){
//저녁인사하기 로직구현
}
}
interface 사람
{
public void 인사하기();
}
class 인사하는사람 implements 사람{
private 인사 hello;
public 인사하는사람(인사 hello){ this.hello = hello;}
public void 인사하기(){
hello.인사하기();
}
}
client
{
main()
{
저녁인사 goodnight = new 저녁인사();
인사하는사람 사람1 = new 인사하는 사람(goodnight);
사람1.인사하기();
점심인사 goodafternoon = new 점심인사();
인사하는사람 사람2 = new 인사하는 사람(goodafternoon);
사람2.인사하기();
}
}