큰소리 디자인 모드 학습 노트 - 장식 모드

2604 단어 디자인 모드
목차
Person 류
장식 추상 류
장식 추상 류 구체 적 실현 류
클 라 이언 트 코드
 
Person 류
public class Person {
    private String name;

    public Person(){

    }

    public Person(String name) {
        this.name = name;
    }

    public void show(){
        System.out.print("   "+name);
    }
}

장식 추상 류
/**
 *    
 */
public class Finery extends Person {

    protected Person component;

    public void decorate(Person component){
        this.component = component;
    }

    @Override
    public void show(){
        if(component!=null)
            component.show();
    }
}

장식 추상 류 구체 적 실현 류
/**
 *      --T 
 */
public class TShirts extends Finery{
    @Override
    public void show() {
        System.out.print(" T  ");
        super.show();
    }
}
/**
 *   
 */
public class BigTrouser extends Finery {
    @Override
    public void show() {
        System.out.print("   ");
        super.show();
    }
}
/**
 *    
 */
public class Sneakers extends Finery {
    @Override
    public void show() {
        System.out.print("    ");
        super.show();
    }
}
/**
 *   
 */
public class Tie extends Finery {
    @Override
    public void show() {
        System.out.print("   ");
        super.show();
    }
}
/**
 *   
 */
public class LeatherShoes extends Finery {
    @Override
    public void show() {
        System.out.print("   ");
        super.show();
    }
}
/**
 *   
 */
public class Suit extends Finery {
    @Override
    public void show() {
        System.out.print("   ");
        super.show();
    }
}

클 라 이언 트 코드
/**
 *      
 */
public class TestMain {
    public static void main(String[] args) {
        Person xc = new Person("  ");
        System.out.println("
: "); Sneakers sneakers = new Sneakers(); BigTrouser bigTrouser = new BigTrouser(); TShirts tShirts = new TShirts(); sneakers.decorate(xc); bigTrouser.decorate(sneakers); tShirts.decorate(bigTrouser); tShirts.show(); System.out.println("
: "); LeatherShoes leatherShoes = new LeatherShoes(); Tie tie = new Tie(); Suit suit = new Suit(); leatherShoes.decorate(xc); tie.decorate(leatherShoes); suit.decorate(tie); suit.show(); } }

좋은 웹페이지 즐겨찾기