일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Servlet
- websocket
- model1
- 도커
- docker
- Ajax
- 블록체인
- EC2
- RDS
- HTML
- express
- Spring
- node.js
- CSS
- Cookie
- 비트코인
- 웹게임
- JSP
- phaser
- 배포
- 알고리즘
- PL/SQL
- 암호화
- AWS
- JavaScript
- autowired
- tiles.xml
- 웹소켓
- jQuery
- SQL
- Today
- Total
記錄
Adapter Pattern(어댑터 패턴) 본문
Adapter Pattern(어댑터 패턴)
이미 구현되어 있는 알고리즘을 사용하고 싶지만 반환하는 자료타입이 다를때 이를 해결해주는 패턴이다. 마치 여행가서 쓰는 어댑터처럼 전기를 쓰긴 쓰는데 전압만 바꿔주는 그런 어댑터와 같은 기능이다.
원리는 매우 간단하다. 인터페이스에서 필요한 메소드를 선언 후 이를 implements 하는 객체에서 구현한다. 그리고 구현은 기존에 있던 객체의 메소드를 불러와 그곳에서 파라미터에 '.doubleValue()'와 같은 메소드를 활용해서 제대로 된 타입을 집어 넣고 리턴에 강제로 (float)을 캐스팅 해서 결국 우겨넣는(?) 메소드를 하나로 정리하는 것이다. 그리고 이를 Main Class(메인이든 아니든 필요한 곳에서)에서 불러내어 사용하면 되고 이 때 집어넣는 파라미터 값에 자료형을 맞추기 위해 뒤에 F를 붙이는 것이다.(이 예시의 경우를 의미한다)
솔직히 이걸 쓸 일이 있는지는 모르겠다. 근데 그냥 뛰어넘기 싫어서 구현해보았다. 강의에서는 작업 규모가 커지면 이 방법이 훨씬 편하고 효율적이라고 했다. 그냥 필요한 함수를 갖고 있는 객체를 불러와서 .메소드() 한 뒤에 이를 맨 앞에서 강제 캐스팅해주는 것보다 효율적이라는 것이다. 이게 규모가 커지면 더 복잡해지니까 매번 불러와서 그렇게 하는 것보다 인터페이스도 만들고 굳이 이를 implements하는 객체를 만들어서 오버라이드까지 해서 메소드를 사용하는 것이라 추측해본다.
(그리는 것이 시간이 덜 들 것 같았는데 막상PPT로 만드니 더 빨리되고 더 깔끔하다.
하지만 손으로 쓴걸 찍어 올리는 것이 보람은 더 있군)
출처: https://www.inflearn.com/
'IT_Fundamental > 디자인 패턴' 카테고리의 다른 글
Prototype Pattern(프로토 타입 패턴) - 1 (0) | 2017.12.07 |
---|---|
Singleton Pattern(싱글톤 패턴) (0) | 2017.11.23 |
Factory Method Pattern(팩토리 메소드 패턴) (0) | 2017.11.19 |
Template Method Pattern(탬플릿 메소드 패턴) (0) | 2017.11.18 |
Strategy pattern(스트래티지 패턴) (0) | 2017.11.11 |