객체 지향과 디자인 패턴 ‐ SOLID(O) - dnwls16071/Backend_Study_TIL GitHub Wiki
📚 개방 폐쇄 원칙(Open-Closed Principle)
- 기능을 변경하거나 확장할 수 있으면서도 기능을 사용하는 다른 코드에선 수정하지 않는다.
개방 폐쇄 원칙 구현1: 상속 이용
상속은 상위 클래스 기능을 그대로 사용하면서 하위 클래스에서 일부 구현을 오버라이딩 할 수 있는 방법을 말한다.
public class ResponseSender {
private Data data;
public ResponseSender(Data data) {
this.data = data;
}
public Data getData() {
return data;
}
public void send() {
sendHeader();
sendBody();
}
// 헤더부 전송
protected void sendHeader() {
// ...
}
// 바디부 전송
protected void sendBody() {
// ...
}
}
public class ZippedResponseSender extends ResponseSender {
public ZippedResponseSender(Data data) {
super(data);
}
@Override
protected void sendBody() {
// ...
// 메서드 오버라이딩(상속 활용)
}
@Override
protected void sendHeader() {
// ...
// 메서드 오버라이딩(상속 활용)
}
}