java策略模式,在我的认知中是根据不同选择执行不同的实现。通过if或者switch-case也能实现这种逻辑,但是代码冗余,可扩展性不强。
百度百科上的解释为策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。
这里我只是分享一下我在接收微信事件推送上使用策略模式的方法。接触过微信开发的都清楚,微信所有的事件推送只能推送到我们填写的那个接口,我们需要不同的事件执行不同的逻辑。这个时候策略模式都优势就展现出来了。
以下是具体实现:
2接收到的参数一般都是xml格式的我们先将xml解析成map。(工程需引入 org.dom4j 2.1.1)
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* XML解析
*/
public class XmlConvert {
/*
* XML转map
*/
public static Map xmlToMap(InputStream ins) {
HashMap map = null;
try {