📝요약
SOLID 설계란 단일 책임 원칙, 개방 폐쇄 원칙, 리스코프 치환 원칙, 인터페이스 분리 원칙, 의존성 반전 원칙을 지키는 설계를 말합니다.
단일 책임 원칙이란, 하나의 모듈은 하나의 일만 처리해야 한다는 원칙입니다.
개방 폐쇄 원칙이란, 소프트웨어 아티팩트는 확장에 열려있되 수정에 닫혀있어야 한다는 원칙입니다.
리스코프 치환 원칙이란, 자식 클래스가 부모 클래스를 대체하는데 문제가 없어야 한다는 원칙입니다.
인터페이스 분리 원칙이란, 인터페이스를 사용하는 객체가 불필요한 함수를 구현하는 것을 강요하면 안된다는 원칙입니다.
마지막으로 의존성 반전 원칙이란, 상위 모듈은 하위 모듈에 의존해서는 안된다는 원칙입니다.
📌참고자료
enum class Notification {
PUSH_NOTIFICATION, EMAIL
}
class NotificationService {
fun sendNotification(notification: Notification) {
// notificagion의 값에 따라 다른 작업을 실행하게 한다
when (notification) {
Notification.PUSH_NOTIFICATION -> {
// send push notification
}
Notification.EMAIL -> {
// send email notification
}
}
}
}
interface Notification {
fun sendNotification()
}
// Notification interface를 상속 받으며 각 함수 재정의
class PushNotification : Notification {
override fun sendNotification() {
// send push notification
}
}
class EmailNotification : Notification {
override fun sendNotification() {
// send email notification
}
}
class NotificationService {
fun sendNotification(notification: Notification) {
notification.sendNotification()
}
}
interface OnClickListener {
fun onClick()
fun onLongClick()
}
interface OnClickListener {
fun onClick()
}
interface OnLongClickListener {
fun onLongClick()
}