Java-马士兵设计模式学习笔记-责任链模式-处理数据
一、目标
数据提交前做各种处理
二、代码
1.MsgProcessor.java
public class MsgProcessor {
private List<Filter> filters = new ArrayList<Filter>();
private String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String process() {
filters.add(new SensitiveFilter());
filters.add(new HTMLFilter());
String r = msg;
for(Filter f : filters){
r = f.doFilter(r);
}
return r;
}
}
2.Filter.java
public interface Filter {
public String doFilter(String str);
}
3.HTMLFilter.java
public class HTMLFilter implements Filter {
@Override
public String doFilter(String str) {
return str.replace('<', '[').replace(">", "]");
}
}
4.SensitiveFilter.java
public class SensitiveFilter implements Filter {
@Override
public String doFilter(String str) {
return str.replace("敏感", "幸福");
}
}
5.Test.java
public class Test {
@org.junit.Test
public void testFilter(){
String msg = "<html>敏感字眼</html>";
MsgProcessor processor = new MsgProcessor();
processor.setMsg(msg);
String result = processor.process();
System.out.println(result);
}
}
三、运行结果

Java-马士兵设计模式学习笔记-责任链模式-处理数据的更多相关文章
- Java-马士兵设计模式学习笔记-责任链模式-FilterChain功能
一.目标 增加filterchain功能 二.代码 1.Filter.java public interface Filter { public String doFilter(String str) ...
- Java-马士兵设计模式学习笔记-责任链模式-模拟处理Reques Response
一.目标 1.用Filter模拟处理Request.Response 2.思路细节技巧: (1)Filter的doFilter方法改为doFilter(Request,Resopnse,FilterC ...
- Java设计模式学习记录-责任链模式
前言 已经把五个创建型设计模式和七个结构型设计模式介绍完了,从这篇开始要介绍行为型设计模式了,第一个要介绍的行为型设计模式就是责任链模式(又称职责链模式). 责任链模式 概念介绍 责任链模式是为了避免 ...
- 学习笔记——责任链模式ChainOfResponsibility
责任链模式,主要是通过自己记录一个后继者来判断当前的处理情况.Handler中,再增加一个方法用于设置后继对象,如SetHandler(Handler obj). 然后Handler类以其子类的处理方 ...
- 设计模式学习之责任链模式(Chain of Responsibility,行为型模式)(22)
参考:http://www.cnblogs.com/zhili/p/ChainOfResponsibity.html 一.引言 在现实生活中,有很多请求并不是一个人说了就算的,例如面试时的工资,低于1 ...
- Java-马士兵设计模式学习笔记-装饰者模式
Java装饰者模式简介 一.假设有一个Worker接口,它有一个doSomething方法,Plumber和Carpenter都实现了Worker接口,代码及关系如下: 1.Worker.java p ...
- Java-马士兵设计模式学习笔记-总结
<马士兵设计模式学习>学习了以下模式: 1.装饰者模式(例子:水管工,木工) 2.策略模式(例子:老师用职称比大小.学生用成绩比大小) 3.简单工厂模式(例子:VechileFactory ...
- 编写计算器程序学习JS责任链模式
设计模式中的责任链模式能够很好的处理程序过程的逻辑判断,提高程序可读性. 责任链模式的核心在于责任链上的元素判断能够处理该数据,不能处理的话直接交给它的后继者. 计算器的基本样式: 通过div+css ...
- Python使用设计模式中的责任链模式与迭代器模式的示例
Python使用设计模式中的责任链模式与迭代器模式的示例 这篇文章主要介绍了Python使用设计模式中的责任链模式与迭代器模式的示例,责任链模式与迭代器模式都可以被看作为行为型的设计模式,需要的朋友可 ...
随机推荐
- C++ MFC实现基于RFID读写器的上位机软件
C++ MFC实现基于RFID读写器的上位机软件 该博客涉及的完整工程托管在https://github.com/Wsine/UpperMonitor,觉得好请给个Star (/▽\=) 运行和测试环 ...
- Python实现ID3(信息增益)
Python实现ID3(信息增益) 运行环境 Pyhton3 treePlotter模块(画图所需,不画图可不必) matplotlib(如果使用上面的模块必须) 计算过程 st=>start: ...
- 设置浮点数的显示精度&precision(0)
/* 设置浮点数的显示精度 cout.precision(int)可以设置浮点数的显示精度(不包括小数点) 注: 1.如果设置的精度大于浮点数的位数,如果浮点数能根据IEEE ...
- linux查看端口是否已开启和查看文件数
查看端口是否开启 lsof -i:80 查看文件数 ls | wc -w
- 小组开发项目NABC分析
我们团队的开发项目为:重量解锁 是根据重力感应实现手机的解锁方式,在传统滑屏的基础上我们想增添新的形式,实现用户用一组动作就能实现手机解锁功能,更加方便,炫酷. NABC模型 1.N:我们的创意在使用 ...
- python操作sqlite数据库
root@cacti:~/box# cat convert.py #!/usr/bin/env python import sqlite3,time,rrdtool,os def boxstatus( ...
- matrix_last_acm_2
2014年广州站网络赛 北大命题 password 123 B http://acm.hust.edu.cn/vjudge/contest/view.action?cid=97257#problem/ ...
- jdbc读取数据库表
把结果集封装为List // 通过结果集元数据封装List结果集 public static List<Map<String, Object>> read(String sql ...
- JavaScript之substring()方法讲解
定义和用法 substring() 方法用于提取字符串中介于两个指定下标之间的字符. 语法 stringObject.substring(start,stop) 参数 描述 start 必需.一个非负 ...
- <string>和<string.h>的区别
转自:http://blog.csdn.net/houjixin/article/details/8648969 在C++开发过程中经常会遇到两个比较容易混淆的头文件引用#include<str ...