본문 바로가기

JAVA22

디자인패턴 - 템플릿 메소드 패턴 (template method pattern) 템플릿 메소드 패턴 (template method pattern) 메소드에서 알고리즘의 골격을 정의한다.알고리즘의 여러 단계 중 일부는 서브클래스에서 구현할 수 있다.템플릿 메소드를 이용하면 알고리즘의 구조는 그대로 유지하면서 서브클래스에서 특정 단계를 재정의 할 수 있다. 알고리즘의 틀을 만들기 위한 패턴이다.이 패턴에서 틀(템플릿)이란 일련의 단계들로 알고리즘을 정의한 메소드다. 여러 던계 가운데 하나 이상이 추상 메소드로 정의되며, 그 추상 메소드는 서브클래스에서 구현된다. 이렇게 하면 서브클래스에서 일부분의 단계를 구현할 수 있도록 하면서도 알고리즘의 구조는 바꾸지 않아도 되도록 할 수 있다. 템플릿 메소드 패턴 클래스 다이어그램 커피와 차가 만들어 지는법을 비교해보자. 1. 커피 만드는 법1) .. 2016. 6. 16.
디자인패턴 - 퍼사드 패턴 (facade pattern) 퍼사드패턴 (facade pattern) 어떤 서브시스템의 일련의 인터페이스에 대한 통합된 인터페이스를 제공한다.퍼사드에서 고수준 인터페이스를 정의하기 때문에 서브시스템을 더 쉽게 사용할수 있다. 패턴을 사용할때는 항상 패턴이 어떤 용도로 쓰이는지를 잘 알아둬야 한다.퍼사드 패턴은 단순화된 인터페이스를 통해서 서브시스템을 더 쉽게 사용할 수 있도록 하기위한 용도로 쓰인다. 홈씨어터로 퍼사드 패턴을 구현해보자. 전선과 프로젝터를 설치하고, 각 장치들을 케이블로 연결하고 등등 여러 인터페이스들이 나열되어 있다. DVD영화를 보려고하면..1. 팝콘 기계를켠다.2. 팝콘 튀기기 시작.3. 전등을 어둡게 조절4. 스크린을 내린다.....12. DVD 플레이어를 켠다13. DVD를 재생한다. poper.on();p.. 2016. 6. 13.
디자인패턴 - 어댑터 패턴 (adapter pattern) 어댑터 패턴 (adapter pattern) 한 클래스의 인터페이스를 클라이언트에서 사용하고자하는 다른 인터페이스로 변환한다.어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있다. 호환되지 않는 인터페이스를 사용하는 클라이언트를 그대로 활용할수 있다.이렇게 함으로써 클라이언트와 구현된 인터페이스를 분리시킬수 있으며, 향후 인터페이스가 바뀌더라도 그 변경 내역은 어댑터에 캡슐화 되기 때문에 클라이언트는 바뀔 필요가 없어진다. 어댑터 패턴 클래스 다이어그램 전기 콘센트를 보면 이해가 쉽다.한국의 표준 플러그를 일본에 전원 소켓에 바로끼워줄수 없어 동그랑 모양을 일자로 바꿔주는 어댑터를 끼워주어야 한다.이와같이 어댑터는 소켓의 인터페이스를 플러그에서 필요로 하는 인.. 2016. 6. 13.
정렬 알고리즘 - 삽입정렬(insertion sort) 삽입정렬(insertion sort) 제자리정렬, 안정정렬, 내부정렬 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입 초기 - [ 31, 25, 12, 22, 11 ] 1 - [ 25, 31, 12, 22, 11 ] 2 - [ 12, 25, 31, 22, 11 ] 3 - [ 12, 22, 25, 31, 11 ] 4 - [ 11, 12, 22, 25, 31 ] void insertionSort(int[] arr) { for(int index = 1 ; index = 0) && ( arr[aux] > tem.. 2016. 5. 31.