패턴
-
프록시 패턴 - 백기선Java & 배경지식/패턴 2020. 6. 14. 17:42
프록시와 리얼 서브젝트가 공유하는 인터페이스가 있고, 클라이언트는 해당 인터페이스 타입으로 프록시를 사용한다. 클라이언트는 프록시를 거쳐서 리얼 서브젝트를 사용하기 때문에 프록시는 리얼 서브젝트에 대한 접근을 관리거나 부가기능을 제공하거나, 리턴값을 변경할 수도 있다. 리얼 서브젠트는 자신이 해야 할 일만 하면서(SRP) 프록시를 사용해서 부가적인 기능(접근 제한, 로깅, 트랜잭션, 등)을 제공할 때 이런 패턴을 주로 사용한다. 예제 public class Book { String title = "clean code"; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } } ..
-
Strategy Pattern(전략패턴)Java & 배경지식/패턴 2020. 2. 13. 21:18
전략패턴이란? 자신의 기능 맥락(context)에서 필요에 따라 변경이 필요한 알고리즘을 인터페이스르 통해 통째로 외부로 분리시키고, 이를 구현한 구체적인 알고리즘 클래스를 필요에 따라 바꿔서 사용할 수 있게 하는 디자인 패턴. 쉽게말하면 다구현해 놓고 클라이언트가 필요에 의해서 필요한 것을 실행시키는 것 현 직장은 SI 그리고 R&D 중심의 회사다보니 중간에 요구사항 및 새로운 기능들이 추가되는 경우가 매우 많다. 그래서 핵심코드 관리를 잘하지 못하였으나 위의 전략패턴을 이용하게 된다면 핵심내용의 버전을 관리하거나 추가하기가 매우 편하다는 것을 느껴 아래와 같이 기본적인 뼈대를 만들었다. 위와같은 구조로 만들었다. 코드들 Controller @Controller public class HomeContr..