強化責任鏈模式
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- interface Filter {
- String doFilter(String str, FilterChain chain);
- }
- class HtmlFilter implements Filter {
- public String doFilter(String msg, FilterChain chain) {
- String r = msg;
- // 過濾msg中的HTML標記
- r = r.replace("<", "<").replace(">", ">");
- r = chain.doFilter(r, chain);
- return r;
- }
- }
- class SensitiveFilter implements Filter {
- public String doFilter(String msg, FilterChain chain) {
- String r = msg;
- // 過濾敏感詞
- r = r.replace("敏感", "").replace("被就業", "就業");
- r = chain.doFilter(r, chain);
- return r;
- }
- }
- class FilterChain implements Filter {
- public List<Filter> filters = new ArrayList<Filter>();
- public FilterChain addFilter(Filter f) {
- filters.add(f);
- return this;
- }
- Iterator it = null;
- public String doFilter(String msg, FilterChain chain) {
- if (it == null) {
- it = filters.iterator();
- }
- String result = msg;
- // 執行filters中的doFilter方法即可
- if (it.hasNext()) {
- Filter f = (Filter) it.next();
- result = (String) f.doFilter(msg, chain);
- }
- return result;
- }
- }
- class MsgProcessor {
- private String msg;
- private FilterChain chain;
- public MsgProcessor(String msg, FilterChain chain) {
- this.msg = msg;
- this.chain = chain;
- }
- public String process() {
- return chain.doFilter(msg, chain);
- }
- }
- public class MainClass {
- public static void main(String[] args) {
- // 需要被過濾的語句
- String msg = "被就業了:),敏感資訊,<script>";
- // 搞一個過過濾鏈
- FilterChain chain = new FilterChain();
- chain.addFilter(new HtmlFilter()).addFilter(new SensitiveFilter());
- // 例項化處理類
- MsgProcessor mp = new MsgProcessor(msg, chain);
- String r = mp.process();
- System.out.println(r);
- }
-
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-2135694/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 代理模式增強之路(代理+責任鏈模式)模式
- 責任鏈模式模式
- 責任鏈模式妙用模式
- 責任鏈模式探究模式
- 「責任鏈模式」栗子模式
- 設計模式 —— 責任鏈模式設計模式
- 設計模式-責任鏈模式設計模式
- 設計模式(責任鏈模式)設計模式
- 設計模式——責任鏈模式設計模式
- PHP-責任鏈模式PHP模式
- 這就是『責任鏈模式』?模式
- 5、php責任鏈模式PHP模式
- 責任鏈模式探討模式
- 23_責任鏈模式模式
- 設計模式(三) 責任鏈模式設計模式
- Java責任鏈模式(ChainofResponsibility模式)Java模式AI
- 設計模式(十四) 責任鏈模式設計模式
- 設計模式(十八):責任鏈模式設計模式
- 設計模式之——責任鏈模式設計模式
- 設計模式之責任鏈模式設計模式
- 責任鏈模式(Chain Of Responsibility)模式AI
- 責任鏈模式的實踐模式
- 聊一聊責任鏈模式模式
- 責任鏈模式(案例解析)(9)模式
- PHP 設計模式之責任鏈模式PHP設計模式
- 設計模式系列之「責任鏈模式」設計模式
- JAVA設計模式之責任鏈模式Java設計模式
- 極簡設計模式-責任鏈模式設計模式
- Netty中的責任鏈模式Netty模式
- Chain of responsibility-責任鏈模式AI模式
- 用Lambda重構責任模式鏈模式
- 設計模式(四)OkHttp的責任鏈模式設計模式HTTP
- 設計模式第七講-責任鏈模式設計模式
- 我的Java設計模式-責任鏈模式Java設計模式
- Java學設計模式之責任鏈模式Java設計模式
- c#中責任鏈模式詳解C#模式
- Design Patterns in Android:責任鏈模式Android模式
- 設計模式 | 責任鏈模式及典型應用設計模式