전체 글
-
옵저버 패턴Programming/Design Patterns 2010. 5. 3. 08:11
옵저버 패턴의 정의 옵저버 패턴(Observer Pattern)에서는 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 자동으로 갱신되는 방식으로 일대다(one-to-many)의존성을 정의 한다. 어떤 객체의 상태를 느슨하게 결합된 다른 객체들한테 전달하기 위한 패턴이다. *한 객체의(주제) 상태가 바뀌면 그 객체에 의존하는 다른객체들(옵저버)에게 연락이 간다. *주제 이면서 옵저버 일수도 있다.(책에서는 출판사(주제)와 구독자(옵저버)를 예로 들었는데..구독자 이면서 동시에 출판사 일수도 있다.) 신문 구독 메커니즘만 제대로 이해할 수 있다면 옵저버 패턴을 쉽게 이해할 수 있다. 옵저버 패턴(Observer Pattern)에서는 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들..
-
스트래티지 패턴Programming/Design Patterns 2010. 5. 3. 08:11
디자인패턴 1. 스트래티지 패턴(Strategy Pattern)이란? Strategy_Pattern.zip 예제 파일 알고리즘 군을 정의하고 각각을 캡슐화해서 교환해서 사용할 수 있도록 만든다. 스트래터지를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 2.'문제에 대한 인지' 모든 것에 앞서서 현재 어떤문제가 있는지 깨닫는 과정은 정말 중요한 시간이다. 문제가 무엇인지 알아야 솔루션을 제공할것이 아닌가? 지금부터는 소스를 보면서 어떻게 '문제를 인지'하게 되는지 같이 살펴보자. 상황은 다음과 같다. 아래 그림과 같이 오리클래스로 부터 상속을 받은 2개의 오리가 있다 MallaaedDuck 와 RedHeadDuck 이 그것 이다. 이녀석들은 오리로 부터 상속을 받았기에..
-
데코레이터 패턴Programming/Design Patterns 2010. 5. 3. 08:10
3. 데코레이터 패턴 1. 스타버즈에 오신것을 환영 합니다. 1.1 처음 매장 오픈 스타버즈 커피는 엄청난 급속도로 성장한 초대형 커피 전문점으로 유명하다. 스타버즈 커피샵은 워낙 빠르게 생장했기 때문에 다양한 음료를 모두 포괄하는 주문시스템을 이제 갖추려고 한다. 처음 사업을 시작할 무렵에 만들어진 클래스는 아래와 같다. Beverage는 음료를 나타내는 추상 클래스이며, 커피샵에서 판매되는 모든 음료는 이 클래스의 서브클래스가 된다. 추상메소드인 cost()메소드를 새로 정의하여 가격을 구현한다. 처음에는 하우스블렌드, 다크로스트, 디카페인, 에스프레소 네 가지만 판매 하게 된다.. 커피를 주문할 때 스팀 우유나 두유, 모카를 추가하고, 그 위에 휘핑 크림을 얹기도 해야 한다면.. 클래스 개수가 말 ..
-
쉽게 배우는 정규식 사용법.Programming/JAVASCRIPT 2010. 5. 3. 08:05
차례 1. 정규식이란? 2. 정규식 만들기 3. 정규식 표현법 4. 정규식 사용 예제 5. Javascript 정규식 함수 6. 정규식으로 만든 유용한 Javascript 함수 7. Java 정규식 함수 1. 정규식이란? String의 검색,치환,추출을 위한 패턴. 언어별 사용법은 대동소이함. 패턴예>전화번호 형식, 이메일 형식 등. 2. 정규식 만들기 Javascript var regexp = /pattern/[flags] ; var test = regexp.test(to be checked) var regexp = new RegExp("pattern"[, "flags"]); var test = regexp.test(to be checked) flags for javascript g : global m..
-
클래스와 객체Programming/JAVA 2010. 5. 3. 08:04
클래스와 객체 객체 마을로의 여행 test2.zip 클래스와 객체가 무엇일까요?? 쉽게 말하자면 .. 붕어빵 하나 먹어본적 있나요? 클래스를 설계 할 때는 그 클래스 유형으로부터 생성되는 객체에 대해 생각해 보세요. 객체에서 아는 것 - 객체에서 자신에 대해 아는 것은 다음과 같이 부릅니다. ( 인스턴스 변수 ) 객체에서 하는 것 - 객체에서 자신이 하는 것은 다음과 같이 부릅니다. (메소드) 인스턴스란 객체를 부르는 다른 이름이라고 생각하라. 객체에서 할 수 있는 일을 메소드라고 부릅니다. 객체를 설계할 때는 객체에서 알아야할 데이터도 생각해 봐야 하지만 그 외에, 데이터에 대해 어떤 일을 처리하는 메소드에 대해서 생각해 봐야합니다. 객체에는 인스턴스 변수와 메소드가 있지만 그러한 인스턴스 변수와 메소..
-
자바를 소개합니다. ^^Programming/JAVA 2010. 5. 3. 08:04
1. 자바는 어떤 식으로 돌아갈까?? 소스 -> 컴파일러 -> 결과물(코드) -> 가상머신 .java / 오류가 없는지 확인후 class파일생성 / .class(컴파일된 코드) JVM을 통해 / .class파일을 실행시키고, 바이트코드를 해당 플랫폼에서 이해할수 있는 형태로 해석하여 프로그램을실행. 2. 자바의 발전. * 오리지널 자바( 자바1 ) - 자바 1.02 클래스 개수 : 250개 느림 귀여운 이름과 로고를 달고 나왔고 재미있는 면이 많이 있었습니다. 버그도 많았죠. 무엇보다 애플릿(applet)을 만들기 위한 용도로 많이 쓰엿습니다. 자바 1.1 클래스 개수 : 500개 약간 빠름 기능도 다양해지고 더 친숙하게 바뀌었습니다. 이 때부터 인기를 끌기 시작했고 GUI 코드도 향상되었죠. * 자바2..
-
원시 변수와 레퍼런스Programming/JAVA 2010. 5. 3. 08:04
네 변수를 알라 변수는 크게 원시 변수와 레퍼런스, 이렇게 두 가지로 나눌 수 있습니다. 지금까지는 두가지 용도로 사용해 왔습니다. 하나는 객체 상태(인스턴스 변수)였고 다른 하나는 지역 변수(메소드 안에서 정의된 변수) 였지요. 변수는 원시 변수와 객체 레퍼런스로 나눌수 있습니다. 원시 변수에는 정수, 부울, 부동소수점 수와 같은 기초적인 값이 들어갑니다. 객체 레퍼런스에는 객체에 대한 레퍼런스가 들어갑니다. 변수에는 유형이 있어야 합니다. 변수에는 이름이 있어야 합니다. int (유형) count; (이름) 키워드와 변수명. 반드시 알파벳 글자, 및줄(_) 또는 달러 기호($)로 시작해야 합니다. 숫자로 시작은 안되요. 두 번째 문자부터는 숫자도 쓸 수 있습니다. 숫자로 시작 하지만 않으면 괜찮습니다..
-
메소드를 더 강력하게Programming/JAVA 2010. 5. 3. 08:03
닷컴 가라앉히기 게임을 만들어 봅시다. 이 게임은 컴퓨터를 상대로 하는 게임입니다. 컴퓨터에 사이트명을 그리드 위에 배치하면 여러분은 가능하면 적은 횟수만큼 찍어서 닷컴을 침몰시켜야 합니다. 우선 고수준 설계부터 시작합니다. 게임의 전반적인 흐름을 확실히 규정해야겠죠?? 기본개념은 다음과 같습니다. 1.사용자가 게임을 시작시킵니다. a.닷컴 세 개를 만듭니다. b.닷컴 세 개를 가상 그리드에 배치합니다. 2.게임이 본격적으로 시작됩니다. 닷컴이 하나도 남지 않게 될 때까지 다음과 같은 과정을 반복합니다. a.사용자가 예상 위치("A2","C0"등)를 입력하도록 프롬프트를 띄웁니다. b.사용자가 입력한 위치가 맞는지, 틀리는지, 아니면 방금 찍은 것으로 인해 닷컴이 가라 앉았는지를 판별합니다. 상황에 따라..