일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- while
- 업캐스팅
- Validations
- 25가지 효율적인 sql작성법
- Login with OAuth Authentication
- 야구게임
- 페이징
- 추상클래스
- 다운캐스팅
- jquery
- 형변환
- full text indexing
- Full text
- 자바
- 로또
- 스프링
- 전체텍스트
- IBatis procedure
- 단축키
- 전자정부
- 상속예제
- 상속
- 자바 야구게임
- 다형성
- angular2
- Random
- 이클립스
- 전체
- 가변인자
- Today
- Total
목록JAVA (117)
nalaolla
데코레이터 패턴(Decorator pattern)이란 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴으로, 객체에 추가적인 요건을 동적으로 첨가하며, 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안이 될 수 있다. 복잡해 보이는 설명을 예시로 한 번 풀어서 표현해 보겠습니다. (본문에 나오는 예시가 아주 좋아서 그 주제를 가지고 설명하겠습니다.) 이 글을 보고 계시는 대부분의 분들이 카페에 한 번쯤 가보셨다고 생각을 합니다. 카페에 가서 주문을 하는 상황을 한 번 상상해 봅시다. 문을 밀고 들어가서 카운터에서 점원에게 주문을 합니다. "따뜻한 카페라떼 한 잔 주세요!", 옆에서 커피가 나오는 동안 기다리는데, 다른 손님이 들어와서 주문을 합니다. "카라멜 프라푸치노에, 헤이..
지난 시간에는 옵저버 패턴의 기본 개념과 구현하는 것에 대해서 알아보았습니다. 우리가 알아본 옵저버 패턴은 흔하게 사용하는 디자인 패턴 중에 하나입니다. 특히 이벤트 처리에 사용되는데요. 자바의 swing 프로그래밍을 접해 보신 분들은 eventListener에 대해서 익숙하실 겁니다. 이벤트리스너를 통해 우리는 특정한 입력 신호가 들어 올 때 마다, 원하는 행동을 하도록 할 수 있습니다. 이 이벤트 처리 과정은 옵저버 패턴을 사용해 구현하였습니다. 컴포넌트에 eventListener라는 옵저버 부착하면, 해당 컴포넌트에서 발생하는 이벤트를 감시할 수 있습니다. 자바에서는 이 패턴을 편하게 사용할 수 있도록 API로 만들어 지원합니다. Observer 인터페이스와 Observable 클래스를 사용해서 지..
//Strategy Pattern 스트래티지 패턴 예제 interface QuackBehavior { public void quack(); } // 공통 기능을 정의하는 인터페이스 (오리는 공통적으로 꽥꽥 거리는 행동을 한다) /////////////////// Quack class /////////////////// class Quack implements QuackBehavior { public void quack(){ System.out.println("꽥!"); } } // 인터페이스를 상속 받아서 꽥꽥 이라는 기능을 정의한다. (오버라이딩) ///////////////// MuteQuack class //////////////////// class MuteQuack implements Quack..
스트래티지 패턴 (Strategy Pattern) = 알고리즘군을 정의하고 각각을 캡슐화하여 사용할 수 있도록 만든다. 스트래티지를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경 할 수 있다. 상당히 설명이 어렵습니다. 처음 듣는 사람은 한 번에 이해 하기가 어려운 설명입니다. 위키 백과에서 한 번 볼까요? In computer programming, the strategy pattern (also known as the policy pattern) is a behavioural software design pattern that enables selecting an algorithm at runtime. The strategy pattern defines a family of a..
package test.com; public class Test01Main { public static void main(String[] args) { System.out.println("Inheritance..."); Test01AAA ta = new Test01AAA(); ta = new Test01BBB(); ta = new Test01CCC(); ta.aaa(); System.out.println("============================"); Test01BBB tb = new Test01BBB(); tb = new Test01CCC(); System.out.println(tb.bbb()); System.out.println("============================"); T..
상속예제입니다.
package test.com; public class Test03Main { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("추상클래스 : abstract class..."); Test03DDD td = new Test03EEE(); } } package test.com; public abstract class Test03DDD { //메소드는 일반메소드(인스턴스, 스테틱), 추상메소드 //일반메소드는 {}을 갖는다. //추상메소드는 {}없이 ;으로 끝... //구분하기 위해서 abstract표기(메소드와 클래스에 모두 표기) //메소드의 재정의를 강제하기 위해 사용 public ..
package test.com; public class Test02AAA { int a = 111; String a2 = "AAA"; public Test02AAA() { System.out.println("Test02AAA()..."); } public void aaa() { System.out.println("aaa()..."); }} package test.com; public /*final*/ class Test02BBB extends Test02AAA { int b = 222; String b2 = "bbb"; public Test02BBB() { System.out.println("Test02BBB()..."); this.a = 777; } public void bbb() { System.ou..
package test.com; public class Test01Main { public static void main(String[] args) { System.out.println("Inheritance..."); // 상속 : 자바의 상속은 클래스간에는 단일상속을 전제로 한다. // 클래스와 인터페이스간에는 다중상속 지원한다. // 인터페이스 간에는 extends가능 // 기능 : 1. 부모(super)클래스의 모든 자원을 사용한다.(접근제한 설정시 제외 ex:private) // Test01Father father = new Test01Father();// father.test(); Test01Me me = new Test01Me(); System.out.println(me.name); me.t..
package test.com; public class Test01VarArgs { public static void main(String[] args) { System.out.println("가변인자(variable argument)..."); //Test01VarArgs클래스 안에 문자열 3개를 인자로 하는 //메소드를 만들고 임의의 값을 주면서 호출하고 출력.. Test01VarArgs va = new Test01VarArgs(); va.test("A",1,1,1); va.test("A", "B"); va.test("A", "B", "C"); } private void test(String...ns) { for (String n : ns) { System.out.println(n); } System..