xml建模摸底、分析过程及代码测试
一、建模的目的及分析过程
案例图
1.1建模的分析过程
1.2xml建模解决的问题,以案例图为例,如下图:
二、建模的代码及测试
分析完后开始写代码,建模必须要从里到外开始建
首先要做好准备工作,我们先要导入jar包,如下图
然后再建包建类,首先我们先建一个ForwardModel类,代码如下:
package com.mengyuan.model;
public class ForwardModel {
// <forward name="failed" path="/login.jsp" redirect="false" />
private String name;
private String path;
private boolean redirect;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public boolean isRedirect() {
return redirect;
}
public void setRedirect(boolean redirect) {
this.redirect = redirect;
}
}
然后再是ActionModel类
package com.mengyuan.model;
import java.util.HashMap;
import java.util.Map;
public class ActionModel {
// <action path="/loginAction" type="test.LoginAction">
private String path;
private String type;
private Map<String,ForwardModel> foMap=new HashMap<>();
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
//两个行为
/**
* jiang指定的forwardModel压入当前actionModel对象中
* <forward/>放入<action></action>
* @param forwardModel
*/
public void push(ForwardModel forwardModel) {
foMap.put(forwardModel.getName(), forwardModel);
}
public ForwardModel pop(String name) {
return foMap.get(name);
}
}
最外层再是ConfigModel类
package com.mengyuan.model;
import java.util.HashMap;
import java.util.Map;
public class ConfigModel {
private Map<String, ActionModel> acMap=new HashMap<String, ActionModel>();
//两个行为
/**
* 将指定的actionModel压入当前ConfigModel对象中
* <action/>放入<config></config>
* @param forwardModel
*/
public void push(ActionModel actionMoedl) {
acMap.put(actionMoedl.getPath(), actionMoedl);
}
public ActionModel pop(String path) {
return acMap.get(path);
}
}
在xml中有Forward,Action,Config这三个标签,这三个标签刚刚已经建模建好了,所以现在我们要把他们集合写到一起,再写一个工厂类把它们封装起来。
23中设计模式之工厂模式
①工厂模式解决的问题,将代码封装起来,提高代码的复用性。类比汉堡的获取方式(有的直接购买,原材料自己制作)。
②一般工厂一定会有一个方法,就是生产指定模型对象的方法build和newInstance。
注意:在工厂类会有两个以上的构建方法,一个是默认框架路径的模型对象构造方法,还有一个是动态读取任意位置下的框架配置文件
结果: