템플릿 메소드 패턴 : 스프링에서 주로 사용하며, 상속을 통해 슈퍼클래스의 기능을 확장할 때 주로 사용. 슈퍼클래스에 기본적인 로직의 흐름을 만들고 기능이 일부를 추상 메소드나 오버라이딩 가능한 메서드로 만들어 서브 클래스에서 필요에 맞게 구현해서 사용하는 방법
- 훅 메소드 : 슈퍼 클래스에서 디폴트 기능을 정의하거나 비운 후, 서브클래스에서 선택적으로 오버라이드 할 수 있도록 만들어둔 메소드
팩토리 메소드 패턴 : 상속을 통해 기능을 확장하는 패턴, 메소드를 통해서 오브젝트를 생성하는 경우 구체적인 오브젝트 생성 방법을 결정하게 하는 것을 말한다. 주로 인터페이스 타입으로 오브젝트를 리턴하므로 서브클래스에서 어떠한 클래스의 오브젝틀르 만들어 리턴할지는 슈퍼클래스에서 알지못하기에, 서브클래스에서 오브젝트 생성에 대해 다양한 방법으로 오브젝틀르 생성하는 메소드를 재정의 할 수 있다.
다형성 특징 : 클래스 사이의 관계는 코드에 다른 클래스의 이름이 나타나기에 만들어지지만, 오브젝트 사이의 관계는 코드에서 특정 클래스를 전혀 알지 못하더라도 해당 클래스가 구현한 인터페이스를 사용했다면, 그 클래스의 오브젝트를 인터페이스 타입으로 받아서 사용할 수 있다.
개방 폐쇄 원칙(OCP, Open-Closed Principle) : 객체지향 설계 원칙 중 하나, 클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야한다. 인터페이스를 사용하여 확장기능을 정의한 대부분의 API는 개방 폐쇄 원칙을 따른다.
높은 응집도 : 변경이 일어날때, 모듈의 많은 부분이 함께 바뀐다면 응집도가 높다고 할 수 있다. 모듈의 일부분만 바뀌게 되면, 모듈 전체에서 어던 부분이 바뀌어야하는지 파악해야하며, 바뀌지 않은 부분에 대해서 다른 영항을 미치는지에 대한 확인이 필요하다.
낮은 결합도 : 높은 응집도보다 더 민감하다. 책임과 관심사가 다른 오브첵트 또는 모듈과 느슨하게 연결된 형태를 유지, 관계를 유지하는데 꼭 필요한 최소한의 방법만 간접적인 형태로 제공하며, 나머지는 서로 독립적이게 만들어주는 것. 결합도가 낮아지면 변화에 대응하는 속도가 높아지고, 구성이 깔끔해지며 확장에도 유리
전략 패턴 : 자신의 기능 컨텍스트에서, 필요에 따라 변경이 필요한 알고리즘을 인터페이스를 통해 외부로 분리하고 이를 구현한 구체적 알고리즘을 필요에 따라 바꿔서 사용할 수 있게 하는 디자인 패턴
알고리즘 : 독립적인 책임으로 분리가 가능한 클래스
컨텍스트 : 전략을 바꿔가며 사용할 수 있게한 것을 말하며 자신의 기능을 수행하는데 필요한 기능중에서 변경가능한 알고리즘을 인터페이스로 정의하고 구현한 클래스를 말한다.
객체지향 설계 원칙(SOLID) : 단일 책임 원칙, 개방폐쇄원칙, 리스코프 치환 원칙, 인터페이스 분리 원칙, 의존관계 역전
'IT > Spring' 카테고리의 다른 글
토비 스프링 - 의존관계 주입 (0) | 2019.10.13 |
---|---|
토비 스프링 - IoC (0) | 2019.10.13 |
인터셉터 (0) | 2019.08.27 |
Interceptor (0) | 2019.08.26 |
Day22 (0) | 2019.08.23 |
댓글