ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [디자인 패턴 Java] 디자인 패턴이란?
    Computer Science/Design Pattern 2022. 10. 12. 01:19
    반응형

    디자인 패턴이란?

    : 프로그램을 설계할 때 발생했던 문제점들을 해결할 수 있도록 하나의 '규약' 형태로 만들어놓은 것
    - 재사용성, 호환성, 유지보수성을 예방하기 위해 패턴을 만들어 둔 것으로 특정한 구현이 아닌 아이디어임

    디자인 원칙

    나쁜 디자인(Design Smell)

    1. 경직성 (Rigidity)
    - 시스템을 변경하기 어려운 디자인. 하나를 변경하기 위해 다른 것들을 변경해야 할 때 경직성이 높다고 함.

    2. 취약성 (Fragility)
    - 특정 부분을 수정하였을 때 관련이 없던 다른 부분에 영향을 줄 때 취약성이 높다고 함.
    - 수정사항이 관련되지 않은 부분에도 영향을 주므로, 관리하는 비용이 높아지고 시스템의 신뢰성이 낮아짐.

    3. 부동성 (Immobility)
    - 모듈이 쉽게 추출되지 않고 재사용하기 어려운 경우.

    4. 점착성 (Viscosity)
    - 개발 환경이 느리고 효율적이지 못한 경우 (컴파일 시간이 너무 오래 걸린다면 시스템의 테스트, 빌드, 수정이 어려움)

    SOLID 원칙

    객체 지향 설계에서 지켜야 할 5가지 원칙

    1. Single Responsibility Principle (SRP), 단일 책임 원칙

    - 하나의 클래스는 하나의 역할만 해야 함
    - 응집도는 높게 결합도는 낮게 설계

    2. Open Closed Principle (OCP), 개방-폐쇄 원칙

    - 확장(상속)에는 열려 있고, 수정에는 닫혀 있어야 함
    - 기존의 코드를 변경하지 않으면서(closed), 기능을 추가(open)할 수 있도록 설계되어 있어야 함

    3. Liskov Substitution Principle (LSP), 리스코프 치환 원칙

    - 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다는 설계 원칙

    4. Interface Segregation Principle (ISP), 인터페이스 분리 원칙

    - 클래스가 꼭 필요한 인터페이스만을 구현해야 함

    5. Dependency Inversion Principle (DIP), 의존 역전 원칙

    - 상위 모듈이 하위 모듈에 의존하면 안됨

    반응형

    댓글

Designed by Tistory.