반응형
📌 단일 책임 원칙 (Single Responsibility Principle - SRP)
하나의 클래스는 하나의 책임만 가져야 합니다. 즉, 클래스는 변경의 이유가 하나여야 합니다. 이를 통해 클래스를 변경할 필요가 있을 때 다른 부분에 영향을 미치지 않도록 할 수 있습니다.
📌 개방/폐쇄 원칙 (Open/Closed Principle - OCP)
소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에 대해서는 개방적이어야 하지만 수정에 대해서는 폐쇄적이어야 합니다. 즉, 새로운 기능을 추가할 때 기존 코드를 수정하지 않고 확장할 수 있어야 합니다. 이를 위해 인터페이스와 추상화를 활용합니다.
📌 리스코프 치환 원칙 (Liskov Substitution Principle - LSP)
자식 클래스는 부모 클래스의 대체(또는 확장) 가능성을 유지해야 합니다. 즉, 자식 클래스는 부모 클래스의 모든 기능을 사용할 수 있어야 하며, 부모 클래스를 대체하여 사용할 수 있어야 합니다.
📌 인터페이스 분리 원칙 (Interface Segregation Principle - ISP)
클라이언트는 자신이 사용하지 않는 인터페이스에 의존하도록 강요되지 않아야 합니다. 즉, 인터페이스는 작고 관련성 있는 메서드 집합으로 분리되어야 합니다. 이를 통해 클라이언트가 필요한 메서드만 사용할 수 있게 됩니다.
📌 의존 역전 원칙 (Dependency Inversion Principle - DIP)
고수준 모듈은 저수준 모듈에 의존하면 안 됩니다. 두 모듈 모두 추상화(인터페이스 또는 추상 클래스)에 의존해야 합니다. 또한, 추상화는 세부 구현에 의존해서는 안 됩니다. 이를 통해 모듈 간의 결합도를 낮추고 유연한 구조를 유지할 수 있습니다.
반응형
'프로그래밍 > Java' 카테고리의 다른 글
[Java] 클래스, 객체, 인스턴스의 차이 (2) | 2023.10.10 |
---|---|
[Java] JVM의 구조 (0) | 2023.10.05 |
[Java] 캡슐화와 은닉화의 차이 (0) | 2023.10.04 |
[Java] OOP의 4가지 특징 (1) | 2023.10.04 |
[Java] Java의 접근 제어자의 종류와 특징 (0) | 2023.10.03 |