자바 복습
2024. 6. 10. 20:16ㆍJAVA언어
역할 = interface
구현 = interface 구현 class / 객체
구현보다 역할(interface) 분리를 잘 해야한다.
좋은 객체 지향 설계의 5가지 원칙 (SOLID)
- 단일 책임 원칙(Single Responsibility Principle, SRP)
- 한 클래스는 하나의 책임만을 가져야 한다.
- 클래스는 단 하나의 기능만 가지며, 그 기능을 변경해야 할 이유가 하나여야 한다.
- 개방-폐쇄 원칙(Open-Closed Principle, OCP)
- 소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에는 열려 있어야 하지만, 변경에는 닫혀 있어야 한다.
- 기존 코드를 수정하지 않고도 기능을 확장할 수 있어야 한다.
- 리스코프 치환 원칙(Liskov Substitution Principle, LSP)
- 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않고 상위 타입의 인스턴스로 바꿀 수 있어야 한다.
- 상위 클래스의 객체를 하위 클래스의 인스턴스로 대체해도 프로그램의 정상 동작이 유지되어야 한다.
- 인터페이스 분리 원칙(Interface Segregation Principle, ISP)
- 특별한 클라이언트를 위한 일반적인 인터페이스 보다는 구체적인 여러 개의 인터페이스가 낫다.
- 클라이언트는 자신이 사용하지 않는 메서드에 의존적이지 않아야 한다.
- 의존 역전 원칙(Dependency Inversion Principle, DIP)
- 상위 계층이 하위 계층에 의존해서는 안 된다. 둘 모두 추상화에 의존해야 한다.
- 구체적인 사항이 아닌 추상화에 의존해야 한다.
의존 역전의 원칙은 둘 다 interface 또는 추성메서드에 의존해 각 클래스의 수정에 영향 받지않고 똑같은 역할을 하도록 하는 것이다. 해당 내용은 이해했지만 실제로 적용해서 사용하지 못해서 이 번에 java공부 시, 프로젝트 진행 시 잘 적용해보도록 해야겠다.