정책 모드 예

예 는 진 소 파 의 에서 기원 되 었 다.
1、
/**
 * @author zhaojianbo
 *          ,             
 */
public interface IStrategy {
    //              
    void operate();
}

2. 아래 세 단락 의 코드 는 세 가지 전략 을 대표 한다.
2.1
/**
 * @author zhaojianbo
 */
public class BackDoor implements IStrategy {
    @Override
    public void operate() {
        System.out.println("    1");
    }
}

2.2
/**
 * @author zhaojianbo
 */
public class GivenGreenLight implements IStrategy {
    @Override
    public void operate() {
        System.out.println("    2");
    }
}

2.3
/**
 * @author zhaojianbo
 */
public class BlockEnemy implements IStrategy{
    @Override
    public void operate() {
        System.out.println("    3");
    }
}

3. 모든 정책 을 한 상자 에 넣 고 나중에 상자 에서 모든 정책 을 꺼 낼 수 있 습 니 다.
/**
 * @author zhaojianbo
 */
public class Context {
    private IStrategy iStrategy;

    public Context(IStrategy iStrategy) {
        this.iStrategy = iStrategy;
    }

    public void operate() {
        iStrategy.operate();
    }
}

4. 테스트 클래스

/**
 * @author zhaojianbo
 */
public class ZhaoYun {
    public static void main(String[] args) {
        Context context;
        System.out.println("------1-----");
        context = new Context(new BackDoor());
        context.operate();
        System.out.println("------end------");
        System.out.println("------2-----");
        context = new Context(new GivenGreenLight());
        context.operate();
        System.out.println("------end---");
        context = new Context(new BlockEnemy());
        context.operate();
        System.out.println("------3---");
        System.out.println("------end-----");
    }
}

좋은 웹페이지 즐겨찾기