1. SRP (Single Responsibility Principle) - 단일 책임 원칙
    • 각 클래스는 단 하나의 책임만 가져야 합니다. 즉, 하나의 클래스는 하나의 기능만 수행하며, 이를 변경할 이유도 하나여야 합니다.
    • 장점: 코드 변경이 필요한 경우 해당 클래스만 수정하면 되므로 수정이 용이합니다.
  2. OCP (Open/Closed Principle) - 개방-폐쇄 원칙
    • 클래스는 확장에는 열려 있어야 하지만, 수정에는 닫혀 있어야 합니다. 즉, 기능을 추가할 수는 있지만, 기존의 코드를 변경하지 않도록 설계해야 합니다.
    • 장점: 시스템의 기능 확장 시 기존 코드를 건드리지 않으므로 버그 발생 확률을 줄입니다.
  3. LSP (Liskov Substitution Principle) - 리스코프 치환 원칙
    • 서브타입은 언제나 기반 타입으로 교체할 수 있어야 합니다. 즉, 부모 클래스의 객체를 자식 클래스로 대체해도 프로그램의 동작에 문제가 없어야 합니다.
    • 장점: 클래스 간의 상속 관계를 올바르게 설계하여 일관성 있는 코드를 유지할 수 있습니다.
  4. ISP (Interface Segregation Principle) - 인터페이스 분리 원칙
    • 클라이언트는 자신이 사용하지 않는 메서드에 의존하지 않아야 합니다. 즉, 큰 인터페이스를 여러 개의 작은 인터페이스로 분리하여 각 인터페이스가 특정 클라이언트의 필요에 맞게끔 해야 합니다.
    • 장점: 불필요한 메서드 의존성을 줄임으로써 유연하고 독립적인 인터페이스를 설계할 수 있습니다.
  5. DIP (Dependency Inversion Principle) - 의존성 역전 원칙
    • 고수준 모듈은 저수준 모듈에 의존해서는 안 되며, 둘 다 추상화에 의존해야 합니다. 즉, 구현체보다는 인터페이스나 추상 클래스에 의존하는 설계를 해야 합니다.
    • 장점: 코드의 결합도를 낮추고, 코드의 재사용성과 확장성을 높입니다.

 

'JAVA > Java 상식 및 개념' 카테고리의 다른 글

[Java] 객체지향 4요소  (0) 2024.11.11
[Java] Enum type 활용  (0) 2023.10.26
[Java] 깊은복사 얕은복사  (0) 2023.10.04
[JAVA] Call by value, Call by reference 차이  (0) 2023.10.04
[Java] Mutable과 Immutable  (0) 2023.10.04

+ Recent posts