프로 그래 밍 내공 수련 의 디자인 모델 - 책임 체인 모델

1853 단어 책임 체인 모드
디자인 모델 이 명확 하지 않 은 상황 에서 각종 구 조 를 배 우 는 것 은 배우 기 어 려 울 뿐만 아니 라 이해 하기 도 어렵 고 이해 해도 깊 지 않다.
더 먼 길 을 가기 위해 서 는 기초 부터 잡 고 매일 한 걸음 씩 전진 합 니 다!
비록 곧 졸업 을 앞 두 고 있 지만, 비록 길이 멀 지만, 꿈 이 없 으 면 굳이 먼 곳 에 갈 필요 가 있 겠 는가!
package edu.designpattern.chainofresponsibility;



import java.util.ArrayList;

import java.util.List;



import org.junit.Test;

/**

 *        

 *     

 * 

 * @author helingfeng

 *     :2015/04/28

 **/



//     

interface Filter {

	public String doFilter(String result);

}

/**       **/

public class FilterChain implements Filter{



	//         

	List<Filter> filters = new ArrayList<Filter>();

	

	//         

	public String doFilter(String str) {

		String result = str;

		for(Filter filter : filters){

			result = filter.doFilter(result);

		}

		return result;

	}

	

	//        

	public FilterChain addFilter(Filter f){

		this.filters.add(f);

		return this;

	}

	

	//  

	@Test

	public void test(){

		String str = "<a>      </a>";

		FilterChain chain = new FilterChain();

		HTMLFilter htmlFilter = new HTMLFilter();

		KeysFilter keysFilter = new KeysFilter();

		chain.addFilter(htmlFilter).addFilter(keysFilter);

		System.out.println(chain.doFilter(str));

	}

}

/**HTML      

 * 

 *   <>       []

 * **/

class HTMLFilter implements Filter{



	//       

	public String doFilter(String result) {

		result = result.replaceAll("<", "[").replaceAll(">", "]");

		return result;

	}

}

/**KEY         

 *            

 **/

class KeysFilter implements Filter{

	

	String[] keys = {"  ","  ","  "}; 

	

	//       

	public String doFilter(String result) {

		for(String key : keys){

			result = result.replaceAll(key, "  ");

		}

		return result;

	}

}


좋은 웹페이지 즐겨찾기