ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SOLID원칙
    Architecture/Design Pattern 2012.05.13 00:11

    SOLID  원칙

    1.  단일 책임의 원칙 (SRP : Single Responsibility Principle)
       객체는 하나의 책임 – 억지로 나누지는 말것
       마치 DB의 정규화 와도 비슷하다. 더 좋은것은 성능저하라는 부작용이 없다.

    2.  개방폐쇄 원칙 (OCP : Open – Close Principle)
       모듈은 확장에는 열려고 변경에는 닫혀있어야 함
       즉 메소드 단위의 오버라이딩, command 등을 이용한 확장 포인트를 두어 확장이 용이해야 한다.
       기본 코드에는 손을 대지 않고 시스템을 수정할 수 있어야 한다. => if/switch보다는 다형성을 활용.

    3. 리스코프 대체 원칙 (LSP : Liskov Substitutuin Principle) 

       슈퍼 클래스는 파생 클래스로 대체 가능해야 한다. 즉 인터페이스만 알면 구현체를 몰라도 사용 가능해야
      무분별한 상속을 방지하기 위해서 검증해야 함


    4. 인터페이스 분리의 법칙 (ISP : Interface Segregation Principle)

       각 클라이언트에 특화된 인터페이스를 작성함.  여러개의 인터페이스가 하나의 범용 인터페이스보다 낫다.
       (범용 인터페이스인 "그루비 클로저"와는 용도가 다름)

    5.  의존 관계 역전의 법칙 (DIP : Dependency Inversion Principle)

      클라이언트는 구체 클래스가 아닌 인터페이스나 추상 클래스에 의존해야 한다.

        => 변화의 충격에서 좀더 자유로울 수 있다. 즉 Bridge패턴 처럼 인터페이스/추상 클래스 끼리만 서로 의존관계를 가지며 참조하자는 이야기이다. 


    http://davesquared.net/2009/01/introduction-to-solid-principles-of-oo.html



    'Architecture > Design Pattern' 카테고리의 다른 글

    패턴의 구성  (0) 2012.11.13
    architecture pattern  (0) 2012.10.23
    Double Dispatch and Visitor pattern  (0) 2012.10.18
    리팩토링 요약  (0) 2012.05.20
    SOLID원칙  (0) 2012.05.13
    Design Pattern 요약파일  (0) 2010.03.13

    댓글 0

Designed by Tistory.