일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Observer Pattern
- Abstract Factory
- a
- Functional Programming
- r
- F
- 팩토리 메소드
- El
- 디자인패턴
- 추상팩토리패턴
- Singleton
- builderPattern
- 옵저버 패턴
- 추상 팩토리
- factory method
- PrototypePattern
- 프로토타입 패턴
- ㅓ
- 싱글톤
- 함수형프로그래밍
- ㅋㅁ
- 빌터패턴
- designPattern
- 코틀린
- Design Pattern
- Kotlin
- 디자인패턴 #
- Today
- Total
오늘도 더 나은 코드를 작성하였습니까?
객체지향 설계 원칙(SOLID) 본문
객체지향 설계 원칙(SOLID)
1. 단일 책임 원칙(Single Responsibility Principle)
- 모든 클래스는 하나의 책임을 가지며 그 책임을 완전히 캡슐화해야 된다.
- 클래스가 제공하는 모든 기능은 책임과 연관되어 있다.
- 모듈, 클래스, 메서드는 단 하나의 기능을 가져야 한다.
- 수정을 하거나 에러가 나면 고치기 쉽다.
2. 개방- 폐쇄의 원칙(Open Closed Principle)
- 확장에 대해 열려 있다.
모듈의 동작을 쉽게 확장할 수 있다는 것을 의미한다. 애플리케이션의 요구 사항이 변경될 때, 이 변경에 맞게 새로운 동작을 추가해 모듈을 확장할 수 있다. 추후 변경사항이 발생하더라도 다른 코드나 모듈에 영향이 없도록 한다는 것.
- 수정에 대해 닫혀 있다.
어떤 모듈의 동작을 확장하는 것이 그 모듈의 소스 코드의 변경으로 이어지는 것은 아니다. 한 클래스의 변경이 의존관계를 가지는 다른 클래스의 변경으로 이어지지 말아야 한다.
요약하자면 특정 모듈에 쉽게 새로운 동작을 추가 하기는 쉬우나 이 동작을 추가 함으로써 모듈 내에 다른 부분이 수정을 하면 안 된다는 것이다. 그러면 재사용성과 유지보수가 매우 쉽다.
3. 리스 코프 치환의 원칙(Liskov Substitution Principle)
- 클래스 A가 클래스 B의 하위 클래스라면 별 다른 변경사항 없이 상위 클래스 A를 하위 클래스 B로 바꿀 수 있다. 즉, 상위 타입 -> 하위 타입으로 다운 캐스팅된 객체가 코드에서 논리적으로 문제가 없어야 된다.
4. 인터페이스 분리의 원칙(Interface Segregation Principle)
- 특정 클래스가 자신이 사용하지 않는 메서드에 의존하지 말아야 된다.
- 큰 덩어리의 인터페이스들을 구체적이고 작은 단위로 분리함으로써 클래스들이 꼭 필요한 메서드 들만 이용한다.
5. 의존 역전 원칙(Dependency Inversion Principle)
- 상위 모듈은 하위 모듈에 의존해서는 안된다. 상위 모듈과 하위 모듈 모두 추상화에 의존해야 된다.
- 추상화는 세부사항에 의존해서는 안된다 세부사항이 추상화에 의존해야 된다.
- 상위 모듈(자동차) 하위 모둘(스노 타이어)
'Android Jetpack Architecture > Introduction and Overview' 카테고리의 다른 글
Android app 아키텍처 원칙 (0) | 2020.08.05 |
---|