2013년 11월 26일 화요일

자바 템플릿 메소드 예제(Java Template Method), JAVA Template, JAVA교육/자바교육/자바jspjdbc교육

자바 템플릿 메소드 예제(Java Template Method), JAVA Template, JAVA교육/자바교육
 
/*
 * Template Method를 구현하고, Template Method에서
 * 사용되는 추상메소드를 선언
*/
public abstract class AbstractDisplay { 
    public abstract void open();       
    public abstract void print();       
    public abstract void close();       
    public final void display() {      
        open();                            
        for (int i = 0; i < 5; i++) {      
            print();                    
        }
        close();                           
    }
}



/*
 * 추상클래스인 AbstractDisplay 클래스의 
 * open, print, close 메소드를 구현
*/
public class GreetingDisplay extends AbstractDisplay { 
    private String s;                               
    public GreetingDisplay(String s) {                  
        this.s = s;                              
    }
    public void open() {                          
        System.out.println("hello " + s);                 
    }
    public void print() {                           
        System.out.println("your name is " + s);                     
    }
    public void close() {                         
        System.out.println("bye~ " + s);                
    }
}



/*
 * open, print, close 메소드 구현
*/
public class StringDisplay extends AbstractDisplay {   
    private String string;                              
    private int width;                                 
    public StringDisplay(String string) {              
        this.string = string;                          
        this.width = string.getBytes().length;         
    }
    public void open() {                                
        printLine();                                    
    }
    public void print() {                              
        System.out.println("|" + string + "|");    
    }
    public void close() {                               
        printLine();                                    
    }
    private void printLine() {                   
        System.out.print("+");                   
        for (int i = 0; i < width; i++) {       
            System.out.print("-");               
        }
        System.out.println("+");                
    }
}




public class Main {
    public static void main(String[] args) {
        AbstractDisplay d1 = new GreetingDisplay("이종철");                  
        AbstractDisplay d2 = new StringDisplay("Hello, world.");   
        AbstractDisplay d3 = new StringDisplay("안녕하세요~");    
        d1.display();                                               
        d2.display();                                               
        d3.display();                                               
    }
}

 
[오프라인 개강예정강좌, 오프라인교육장에 오시면 보다 자세히 배울 수 있습니다.]

오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(
www.onjprogramming.co.kr)

[주간]
  [12/02]안드로이드개발자과정
  [12/02]iPhone 하이브리드 앱 개발 실무과정
  [12/09][기업100%환급]Spring Framework,MyBatis,Hibernate실무프로젝트과정
  [12/16][기업100%환급]PL/SQL,ORACLE HINT,TUNING
  [12/23][기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
  [12/23][기업100%환급]SQL기초에서 Schema Object까지

[평일야간]
  [12/03]웹퍼블리싱 마스터
  [12/03]iPhone하이브리드앱개발실무과정
  [12/04]SQL초보에서실전전문가까지
  [12/05]Spring3.X, MyBatis, Hibernate실무과정
  [12/09]C#,ASP.NET마스터
  [12/09]JAVA&WEB프레임워크실무과정
  [12/12]자바초보에서안드로이드까지

[주말]
  [11/30]SQL초보에서전문가까지
  [11/30]C#,ASP.NET마스터
  [12/07]Spring3.X,MyBatis,Hibernate실무과정
  [12/14]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
  [12/14]자바초보에서안드로이드까지
  [12/14]웹퍼블리싱 마스터

 

댓글 없음:

댓글 쓰기