객체지향 디자인 원칙(Solid)
• S - SRP(Single responsibility principle) 단일 책임 원칙
• O - OCP(Open Closed Principle) 개방 - 폐쇄 원칙
• L - LSP(Liskov Substitusion Principle) 리스코프 치환 법칙
• I - ISP(Interface Segregation Principle) 인터페이스 분리 원
칙
• D - DIP(Dependency Inversion Principle) 의존성 역전 법칙
5.
객체지향 디자인 원칙(Solid)
• S - SRP(Single responsibility principle) 단일 책임 원칙
• 객체에 단 하나의 책임만을 가져야한다.
• 객체에 많은 기능과 책임을 정의하면 변경 시 많은 부분
을
변경할 수도 있고, 의도치 않은 곳에 오류가 생기기 쉽다.
• 응집도가 높은 클래스를 만들어야한다.
6.
객체지향 디자인 원칙(Solid)
• O - OCP(Open Closed Principle) 개방 - 폐쇄 원칙
• 기존의 코드를 변경하지 않으면서 기능을 추가 할 수 있
도록
설계 되어야한다.
• 모듈은 추상화 된 클래스의 의존하여, 가능한 동작을 수
행하게
설계 해야함.
7.
객체지향 디자인 원칙(Solid)
• L - LSP(Liskov Substitusion Principle) 리스코프 치환 법칙
• 파생 클래스는 부모 클래스의 가능한 행위는 수행할 수
있어야
한다.
• 부모 클래스에 의해 파생 클래스의 행동이 추상화 되어,
소스코드에 존재할텐데 추상화 된 내용을 수행을 못 하
면
부모 클래스에서 상속 받는 메소드들이 잘못 설계가 되
어진것
8.
객체지향 디자인 원칙(Solid)
• I - ISP(Interface Segregation Principle) 인터페이스 분리 원
칙
• 클라이언트 자신이 이용하지 않는 기능에는 영향을 받지
않아야
한다.
• 큰 덩어리의 인터페이스가 아닌 작은 인터페이스로 분리
하여
의존성을 약화 시켜 유연한 구조로 설계한다.
9.
객체지향 디자인 원칙(Solid)
• D - DIP(Dependency Inversion Principle) 의존성 역전 법칙
• 변화가 없는 것에 의존 하라. 고수준 요소가 저수준 요소
의
추상 클래스에 의존하게 설계 해야함.
• 고수준 요소가 저수준의 구상 클래스에 의존하게 되면
고수준 요소가 저수준의 요소에 의존하게 된다.
• 의존성 역전은 전통적 방식에 하이레벨에서 로우레벨을
의존하는 방식을 역전 시켜 설계하는 것을 지향.
10.
디자인 패턴 소스코드
•해당 디자인 패턴 소스코드는 Git에 업로드 했습니다.
https://github.com/PAndy92/StudyOfProgramming
• Java -> C#으로 작성한 코드입니다.
• 문의는 [email protected] 이나 코멘트
달아주시면 감사하겠습니다.