어제는 객체지향 프로그래밍이 무엇인지 공부했다면, 오늘은 올바르게 객체지향 프로그램 설계를 위한 규칙을 알아보려고 한다. 우리는 이 규칙을 객체지향 5원칙(SOLID)
라는 5가지의 규칙의 앞글자를 따 SOLID
라 부른다.
오늘은 첫번째인 단일 책임 원칙에 대해 알라보려고 한다.
Single Responsibility principle
단일 책임 원칙
: 하나의 객체는 반드시 하나의 동작만의 책임을 갖는다는 원칙
"어떤 클래스를 변경해야하는 이유는 오직 하나뿐이어야 한다"
class Car() {
func start() {
print("시동 ON")
}
func stop() {
print("시동 OFF")
}
func drive() {
print("운전")
}
func suplyOil() {
print("기름넣기")
}
func wash() {
print("세차")
}
}
Car
이라는 클래스안에 많은 함수(책임)가 가해져있는걸 볼 수 있다. 지금은 간단하게 예시를 보여주었지만, 만약에 하나의 함수의 코드를 변경하게 된다면, Car
와 연관된 다른 책임들 사이에 영향을 줘 문제가 발생할 수 있게 된다.
class Car {
func start() {
print("시동 ON")
}
func stop() {
print("시동 OFF")
}
}
class Driver {
func drive() {
print("운전")
}
func suplyOil() {
print("기름넣기")
}
}
class carWach {
func wash() {
print("세차")
}
}
이처럼 책임별로 클래스를 분리한다면 SRP규칙을 따르게 된다. 이처럼 하나의 동작을 수정하게 된다면 다른 클래스의 영향을 미치지 않게 되어, 유지보수에도 유용하다.
공부 여기서 해야겠네