2006/11/23 00:23 Developer
상속이 아닌 인터페이스를 생각해라
프리팩토링책을 보다가 다형성에 관한 좋은 예제가 하나 있어서 글을 올려본다.
때에 따라서 적당한 상속방법이 있겠지만, 구현상속와 인터페이스 상속간에 장단점을 알고 사용을 하는 것이 좋을 것이다.
구현 상속
인터페이스 상속
때에 따라서 적당한 상속방법이 있겠지만, 구현상속와 인터페이스 상속간에 장단점을 알고 사용을 하는 것이 좋을 것이다.
구현 상속
class Component{
draw();
hide();
}
class MyComponent extends Component{
// 무엇을 오버라이딩 해야 할지가 불분명하다.
}
draw();
hide();
}
class MyComponent extends Component{
// 무엇을 오버라이딩 해야 할지가 불분명하다.
}
인터페이스 상속
interface Component{
draw();
}
class BaseComponent{
Component a_component;
draw(){
a_component.draw();
}
class MyComponent implements Component{
draw(){
// 이 클래스에 알맞는 그리기 구현
}
draw();
}
class BaseComponent{
Component a_component;
draw(){
a_component.draw();
}
class MyComponent implements Component{
draw(){
// 이 클래스에 알맞는 그리기 구현
}