본문 바로가기

Adapter Design Pattern

java by 낼스 2019. 1. 30.
#### 원본 https://examples.javacodegeeks.com/core-java/java-adapter-design-pattern-example/ # 디자인 패턴의 범주 객체 생성 패턴(Creational design patterns) : 객체의 인스턴스 생성을 관리하기 위해 정의 된 디자인 패턴 구조 디자인 패턴(Structural design patterns) : 클래스를 사용하여 구조를 작성하여 코딩을 단순화하고 관리하기 쉽게 정의 된 디자인 패턴 행동 설계 패턴(Behavioural design patterns) : 서로 다른 객체 간의 상호 작용을 관리하기 위해 정의 된 설계 패턴. # Adapter Design Pattern - 전기 전압을 다른 전압으로 변환하는 개념에서 기반됨. ![Adapter Design Pattern](https://examples.javacodegeeks.com/wp-content/uploads/2018/09/Screen-Shot-2018-09-07-at-10.24.38-PM.jpeg.webp) Client == 전기
Adapter == 전압변환을 제공
Adaptee == 소켓 # 구현 개념 - 기본 객체를 함수의 입력으로 사용하고, --> 객체의 변형을 반환하는 클래스를 만듭니다. --> 클라이언트는 필요에 따라 엔티티를 수정할 수 있는 유연성을 얻습니다. # 어댑터 디자인 패턴의 유형 1. 클래스 어댑터 디자인 패턴 : 소켓 클래스 확장 2. 객체 어댑터 디자인 패턴 : 어댑터 인터페이스 구현, 소켓 클래스 객체 사용 ## 클래스 어댑터 디자인 패턴 #### Flour.java - 전기 공급단계 크기(weight), 가격(price)를 가진다. ```java package com.javacodegeeks.abk; public class Flour { int weight; float price; public Flour(){ } public Flour(int weight,float price) { this.weight = weight; this.price = price; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } public float getPrice() { return price; } public void setPrice(float price) { this.price = price; } } ``` #### FlourItem.java - 객체를 가져옮 : Flour 클래스를 기본값으로 이용함. ```java package com.javacodegeeks.abk; public class FlourItem { public Flour getFlourItem() { return new Flour(10,1000); } } ``` #### FlourInterface.java - 기본 객체를 제공하는 소켓 클래스 FlourItem을 확장함. ```java package com.javacodegeeks.abk; public interface FlourItemInterface { public Flour getQuintal(); public Flour get10kg(); public Flour get1kg(); } ``` #### FlourItemImplementor.java - 어댑터의 구현. ```java package com.javacodegeeks.abk; public class FlourItemImplementor extends FlourItem implements FlourItemInterface { @Override public Flour getQuintal() { Flour f = getFlourItem(); f.setPrice(f.getPrice()*10); f.setWeight(100); return f; } @Override public Flour get10kg() { Flour f = getFlourItem(); return f; } @Override public Flour get1kg() { Flour f = getFlourItem(); f.setPrice(f.getPrice()/10); f.setWeight(1); return f; } } ``` ### 어댑터 디자인 패턴의 장점 - 사전 개발 된 객체의 변형을 제공하여 코드 중복을 줄이는 데 도움이됩니다. - 어댑터 클래스 메소드를 사용하여 다양한 오브젝트에보다 쉽게 ​​액세스 할 수 있습니다. - 개체의 변형을 만드는 데 필요한 처리가 줄어들어 메모리 사용률이 감소합니다. - 그것은 코드의 유지 보수성을 향상시킵니다. 개체의 변형을 쉽게 편집 할 수 있습니다. - 어댑터 클래스에서 사용 가능한 이미 조작 된 객체로 인한 개발 시간 단축 # 결론 - 어댑터 디자인 패턴은 재사용 될 어댑터에 공통적인 요소를 적용. - 클라이언트가 어떤 변형된 사용을 불가하게하고, - 따라서 어댑터 설계 패턴 원리는
엔티티 클래스의 핵심 구현을 은폐하고 객체 소비에 대한 노력을 줄이기 위해 널리 사용됩니다.

'java' 카테고리의 다른 글

Junit Test  (0) 2019.07.12
Singletone Design Pattern  (0) 2019.01.30
Spring Boot internationalization  (0) 2019.01.30
상관관계 분석(Correlation Analysis)?  (0) 2019.01.29
kmeans  (0) 2019.01.29

댓글