일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |
- 이분탐색
- 영어회화 100일의 기적
- multiset
- 다음 지도 api
- 생활코딩
- BOJ 2098
- 성화봉송주자
- 다이나믹 프로그래밍
- 캘리그라피
- BFS
- 안드로이드 스튜디오
- 인간이 그리는 무늬
- 성화봉송
- DP
- 백트레킹
- 평창동계올림픽
- lower_bound
- MST
- 언어의 온도
- Segment Tree
- 그리디 알고리즘
- yolo
- 다음 API
- 비트마스크
- 창훈쓰다
- 외판원 순회
- upper_bound
- boj
- 위상정렬
- 삼성 코딩테스트
- Today
- Total
목록2018/12/27 (6)
Hoon222y
전략(Strategy) 패턴 : 특정한 계열의 알고리즘들을 정의하고, 각 알고리즘을 캡슐화하며, 이 알고리즘들을 해당 계열 안에서 상호 교환 가능하게 만듬. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748package Strategy; import java.io.IOException;// 현재 코드는 템플릿 메서드 패턴을 사용하는데 이는 상속을 사용하므로 // 런타임에 정책을 변경할 수 없으며 데이터 공유도 안된다는 단점이 있음// 이를 해결하기 위해 정책을 런타임에 변경할 수 있도록 인터페이스를 활용한 포함 관계로 구현.public class Test { public static void mai..
추상 팩토리 패턴 : 클래스를 인터페이스 기반으로 구현하여 결합 응집도를 낮춘 패턴1234567891011121314151617181920212223242526272829303132333435package AbstractFactory; public class Test1 { public static void main(String[] args) { //a.exe -os=win ... String os = "Win"; // =args[1] // 이제 각 운영체제 별로 정보창을 출력합니다. if (os == "Win") { WinTextBox textbox = new WinTextBox(); WinButton button = new WinButton(); textbox.draw(); button.draw(); ..
컴포지트 패턴(Composite pattern) : 객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴으로, 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 한다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114package Composite;import java.io.IOException;import java.u..
디자인 패턴 : 반복적으로 발생하는 문제들을 설명하고, 이에 대한 해결방안을 설명하는 학문리팩토링 : 프로그램이 동작을 변경하지 않고, 내부 구조를 변경하는 유지보수의 개념 -> 디자인 패턴은 궁극적인 목표이고, 리팩토링은 이에 대한 방법론이라고 볼 수 있다. 예제를 통해서 진행하자123456789101112131415161718192021222324252627package refactoring; public class test1 { public static void main(String[] args) { new Server().run(); }} // 어떤 기능을 제공하는 서버가 있다고 합니다.class Server{ // 서버를 구동하려면 아래의 메서드를 호출하면 됩니다. public void run(..
옵저버 패턴 : 객체의 상태 변화를 관찰하고 이를 처리하기 위한 디자인 패턴이다. 이벤트가 발생될 객체에 옵저버 객체들을 등록하고, 상태변화가 있을때마다 메서드 등을 통해 객체가 등록된 옵저버들의 메서드를 호출하여 옵저버에게 알려준다 . 옵저버 패턴 : 객체의 상태 변화를 관찰하려는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버들에게 통지하도록 하는 디자인 패턴 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647package Observer; import java.util.ArrayList; public class main { pu..
어댑터 패턴 : 클래스와 인터페이스를 사용자가 기대하는 다른 인터페이스로 전환하는 기법 객체지향 프로그래밍에서 어댑터 패턴을 구현하는 방법1. 상속(비추) - 기존 객체의 멤버들도 외부에 노출되므로 객체의 상태가 불안해진다.2. 포함 - 기존 객체의 멤버들이 외부로 노출되지 않으므로 상속보다 상대적으로 안전하다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667import java.util.ArrayList; //extends ArrayList를 쓰기위함import java.util.Stack; public class main { ..