KOTLIN · 객체지향
SOLID 원칙 적용
Kotlin에서 SOLID 원칙을 적용하는 실용적인 예제입니다. 인터페이스 분리와 의존성 역전을 중심으로 설계합니다.
객체지향고급solidsrpocpispdip
핵심 설명
Kotlin에서 SOLID 원칙을 적용하는 실용적인 예제입니다. 인터페이스 분리와 의존성 역전을 중심으로 설계합니다.
Kotlin code
// ISP: 인터페이스 분리
interface Readable { fun read(): String }
interface Writable { fun write(data: String) }
interface Closeable { fun close() }
// DIP: 의존성 역전 - 추상화에 의존
class FileStorage : Readable, Writable, Closeable {
override fun read() = "파일 데이터"
override fun write(data: String) { println("파일 쓰기: $data") }
override fun close() { println("파일 닫기") }
}
// SRP: 단일 책임
class DataProcessor(private val source: Readable) {
fun process(): String = source.read().uppercase()
}
// OCP: 개방-폐쇄 (확장에 열림, 수정에 닫힘)
class DataSaver(private val dest: Writable) {
fun save(data: String) = dest.write(data)
}
fun main() {
val storage = FileStorage()
val processor = DataProcessor(storage) // Readable만 사용
val saver = DataSaver(storage) // Writable만 사용
val result = processor.process()
saver.save(result)
storage.close()
}학습 팁
인터페이스를 작게 분리하면 클라이언트가 필요한 기능만 의존하게 되어 테스트와 목(mock) 생성이 쉬워집니다.
주의할 점
모든 기능을 하나의 큰 인터페이스에 넣으면 구현 클래스가 불필요한 메서드까지 구현해야 합니다. ISP를 적용하여 분리하세요.
자주 묻는 질문
SOLID 원칙 적용란 무엇인가요?
Kotlin에서 SOLID 원칙을 적용하는 실용적인 예제입니다. 인터페이스 분리와 의존성 역전을 중심으로 설계합니다.
SOLID 원칙 적용 학습 시 주의할 점은 무엇인가요?
모든 기능을 하나의 큰 인터페이스에 넣으면 구현 클래스가 불필요한 메서드까지 구현해야 합니다. ISP를 적용하여 분리하세요.
Continue Learning
Kotlin 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.