패턴 4

어댑터 패턴

어댑터 패턴 기존 코드를 클라이언트가 사용하는 인터페이스의 구현체로 바꿔주는 패턴 이를 사용해서 클라이언트가 사용하는 인터페이스를 따르지 않는 기존 코드를 재사용할 수 있게 해준다. 간단히 말하자면 나라마다 110v, 220v 등등 규격이 다른 것처럼 코드도 클라이언트 규격이 다를 수 있는데, 어댑터를 사용해서 이를 알맞게 변환해줄 수 있는 것이다. 그러니까 내가 만들어 낸 코드와 클라이언트가 사용하는 코드 간의 차이가 존재할 때에, 이를 맞추어 주기 위해 interface의 구현체로 만들어 주는 것이다. 코드로 확인 이런 식으로, security package에 3개의 java파일이 있다. LoginHandler public class LoginHandler { UserDetailsService use..

이론 정리 2023.02.26

프로토타입 패턴

프로토파입 패턴 기존 인스턴스를 복제하여 새로운 인스턴스를 만드는 방법 복제 기능을 갖추고 있는 기존 인스턴스를 프로토타입으로 사용해 새 인스턴스를 만들 수 있다. 시간이 오래 걸리는 작업(예를 들어 DB에서 데이터를 읽어와서 이걸 토대로 인스턴스를 만들어야 하는 경우, http를 통해 얻은 데이터를 통해 인스턴스를 만드는 경우 등..) 을 할 때에 매번 이를 만드는 것은 리소스와 시간 낭비가 크다. 그렇기 때문에 이렇게 만들어 둔 데이터를 복제해서 새로운 인스턴스를 만들고, 이곳에서 얻어온 정보를 토대로 변경 작업 등을 해주면 더 효율적이게 될 것이다. issue 상황 public class GithubIssue { private int id; private String title; private Gi..

이론 정리/java 2023.01.25

빌더 패턴

빌더 패턴 어떤 인스턴스를 만들 때 다양한 구성으로 만들어 질 수 있는데, 인스턴스를 동일한 프로세스를 통해 만들 수 있게끔 해주는 것이다. 문제 상황 public class TourPlan { private String title; private int nights; private int days; private LocalDate startDate; private String whereToStay; private List plans; public TourPlan() { } public TourPlan(String title, int nights, int days, LocalDate startDate, String whereToStay, List plans) { this.title = title; thi..

이론 정리/java 2023.01.25

팩토리 메소드 패턴

펙토리 메소드 패턴 tags: Tag(GoF디자인 패턴) 구체적으로 어떤 인스턴스를 만들지는 서브 클래스가 정한다. 그니까 그 껍데기를 추상적인 Interface 껍데기로 감싸는 것이다. Factory역할을 할 interface를 만들어준다. 이 interface내의 추상화 메소드를 하위 클래스에서 구체적으로 만들어준다. 그리고 이거의 결과로 나오는것도 문제 상황 public class Client { public static void main(String[] args) { Client client = new Client(); Ship whiteship = ShipFactory.orderShip("WhiteShip", "fbcks97@naver.com"); Ship blackShip = ShipFacto..

이론 정리/java 2022.12.12