개발여행일지~
코틀린 2일차! 본문
단일 책임 원칙 - SRP(Single Responsibility Principle)
단일 책임 원칙(SRP)는 객체는 단 하나의 책임만 가져야 한다는 원칙을 말한다.
'책임' 이라는 의미는 하나의 '기능 담당'으로 보면 된다.
하나의 클래스는 하나의 기능 담당하여 하나의 책임을 수행 해야한다.
단일 책임 원칙을 준수하는 이유
하나의 클래스에 여러 책임을 넣었을때와 클래스를 분리시켜 책임을 분산시켰을때의 프로그램의 유지보수와 관련이있다,
객체에 여러 책임이 생길수록 다른 역할의 코드끼리 결합될가능성이있어 나중에 코드를 수정하였을때
서로 복잡하게 얽혀 모든 코드를 다시 테스트 해야할수있다.
이러한 일이 발생하기에 각각 객체를 분리시켜 한 객체 한책임으로 다른책임을 변경하였을때
코드가 복잡해지는것을 예방할수있다.
단일 책임 원칙의 주의점
1. 클래스명에 책임의 기능을 알수있게 생성하기
2. 책임을 분리할때 결합도와 응집도를 따지며 구성해야한다. (응집도: 한 프로그램에 요소가 얼마나 뭉쳐있는가, 결합도: 프로그램 구성 요소들 사이가 얼마나 의존적인가
단일 책임 원칙을 유의하며 만들어본 계산기능이 있는 코드
import java.util.Scanner
class Calculator {
fun calculate(num1: Double, num2: Double, operator: String): Double {
return when (operator) {
"+" -> num1 + num2
"-" -> num1 - num2
"*" -> num1 * num2
"/" -> num1 / num2
else -> throw IllegalArgumentException("실패!")
}
}
}
fun main() {
val scanner = Scanner(System.`in`)
println("사칙연산 계산기")
print("첫 번째 숫자를 입력하세요: ")
val num1 = scanner.nextDouble()
print("두 번째 숫자를 입력하세요: ")
val num2 = scanner.nextDouble()
print("연산자를 선택하세요 (+, -, *, /): ")
val operator = scanner.next()
val calculator = Calculator()
val result = calculator.calculate(num1, num2, operator)
println("$num1 와 $num2 의 $operator 한 결과는 $result 입니다")
}
'코틀린 공부정리' 카테고리의 다른 글
지연초기화 (0) | 2023.07.24 |
---|---|
예외 처리 (try-catch, throw의 구조) (0) | 2023.07.24 |
코틀린 4일차~! (메소드와 클래스, 생성자) (0) | 2023.07.20 |
코틀린 3일차 공부! (OCP, 객체의 결합도&응집도 정리) (0) | 2023.07.19 |
코틀린 1일차! (0) | 2023.07.17 |