SOLID 원칙
1. 단일 책임 원칙 - SRP(Single Responsibility Principal)
객체는 단 하나의 책임만 가져야 한다.
ex) Student 객체는 학생의 기능(책임)만 해야한다.
2. 개방 폐쇄 원칙 - OCP(Open-Closed Principal)
기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계되어야 한다.
내 생각에는 디자인 패턴에서 가장 주요한 원칙인듯?
ex) 단위테스트시 Git을 사용해야 한다면 직원들은 각자의 Git을 구현한(각자의 ID로 구현한) 객체를 주입하도록 설계하면 된다.
3. 리스코프 치환 원칙 - LSP(Liskov Substitution Principal)
부모 클래스와 자식 클래스 사이의 행위가 일관성이 있어야 한다는 의미.
ex) 원숭이 is a kind of 포유류. 간단하게 포유류의 '나는 포유류다'라는 함수를 원숭이클레스가 재정의하지 않으면 된다.
4. 의존 역전 원칙 - DIP(Dependency Inversion Principal)
의존 관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 거의 변화가 없는 것에 의존하라는 원칙
ex) 공격 인터페이스(변하지않는것)에 미사일공격 클레스(변하는것), 레이저공격 클레스(변하는것)로 의존성 주입.
절차지향언어는 추상모듈이 구체적모듈을 호출하기 때문에 객체지향언어에서는 이를 역전시켜야 더 나은 설계가 되는 것.
5. 인터페이스 분리 원칙 - ISP(Interface Segregation Principal)
인터페이스를 클라이언트에 특화되도록 분리시키라는 설계 원칙
ex) 프린터기는 복합기의 프린트 기능만 특화되면되고, 복사기는 복합기의 복사 기능만 특화되면 됨.
SRP를 만족하더라고 ISP를 반드시 만족한다고 볼 수 없다.
'Java > Java' 카테고리의 다른 글
Scanner & BufferedReader (0) | 2022.08.16 |
---|---|
[자바 디자인패턴 소스코드] Composite Pattern (0) | 2022.06.20 |
[자바 디자인패턴 소스코드] Abstract Factory Pattern (0) | 2022.06.16 |
[자바 디자인패턴 소스코드] Factory Pattern (0) | 2022.06.15 |
[자바 디자인패턴 소스코드] Template Pattern (0) | 2022.06.08 |
이 글을 공유하기