본문 바로가기

patten

[Java Design Pattern] Design Patterns in Java Tutorial Java로 다양한 디자인 패턴을 정리한 사이트이다. http://www.tutorialspoint.com/design_pattern/index.htm 더보기
[Java Design Patten] Future 패턴 케이크를 사러 빵집에 갔습니다. 주문을 하자 주인이 저녁에 찾으러 와주세요 하면서 교환권을 줍니다. 저녁이 되어서 교환권을 들고 케이크를 가지러 갔습니다. 주인은 케이크를 건네 주었습니다. Futrue 패턴은 위의 줄거리와 유사하다. 우선은 Main을 보자 host를 통해 Data를 받는다. 그리고 다른 작업(여기서는 쉬는 2초간 대기)을 하다가 데이터를 사용한다. Data를 교환권이라고 보면 되다. public static void main (String[] agrs) {System.out.println("main BEGIN");final Host host = new Host();final Data data1 = host.request(10, 'A');final Data data2 = host.requ.. 더보기
[Java Design Patten] Balking 패턴 지금 이 처리를 실행하면 곤란하다거나 혹은 당장 실행할 필요가 없거나 혹은 다른 곳에서 이미 처리를 하고 있는 경우 실행을 중단하고 돌아가는 패턴이다. 가드 되어 있는 객체 역할 이며 guardedMethod와 stateChangingMethod 를 가지고 있는 패턴이다. 여기서는 save와 chage 함수를 보면 된다.public class Data {private final String filename;private String content;private boolean changed;public Data (final String filename, final String content) {this.filename = filename;this.content = content;this.changed = .. 더보기
[Java Design Patten] Immutable 상태의 변화가 없는 경우에는 synchronized를 할 필요가 없다. 여기서는 불변의 객체의 역할로 Person이 담당을 하였다. public final class Person {private final String name;private final String address;public Person (final String name, final String address) {this.name = name;this.address = address;} public String getName() {return name;} public String getAddress() {return address;} @Overridepublic String toString() {return "Person [name=" +.. 더보기
[Java Design Patten] Single Threaded Execution Gate 클래스는 SharedResource 역할을 담당하고 있다. 그리고 자세히 보면 pass 에 Synchronized 키워드를 사용한 것을 주목하자 사용한 이유는 동시에 복수의 Thread가 접근하면 문제가 발생하기 때문이다. public class Gate {private int counter = 0;private String name = "Nobody";private String address = "NoWhere";public synchronized void pass (final String name, final String address) {this.counter++;this.name = name;this.address = address;check();}public String toString.. 더보기