一、xml建模
建模分两步:
1、以面向对象的编程思想,描述xml资源文件
2、将xml文件中内容封装进model实体对象。
特点:只需要调用指定的方法就可以完成预定的字符串获取;
建模的思路:
1、分析xml里包含的内容里的属性及行为,然后进行封装;
2、封装时要判断属性是否是单个或者多个,然后进行整理;
3、封装时要注意从里到外(从小到大)进行封装;
4、xml文件放在根目录里,否则会出现空指针异常
案例
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>jrebelServlet</servlet-name>
<servlet-class>com.zsm.xml.JrebelServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jrebelServlet</servlet-name>
<url-pattern>/jrebelServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>jrebelServlet2</servlet-name>
<servlet-class>com.zsm.xml.JrebelServlet2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jrebelServlet2</servlet-name>
<url-pattern>/jrebelServlet2</url-pattern>
<url-pattern>/jrebelServlet3</url-pattern>
</servlet-mapping>
</web-app>
ForwardModel.java
package com.zsm.model;
public class ForwardModel {
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.java
package com.zsm.model;
import java.util.HashMap;
import java.util.Map;
public class ActionModel {
private String path;
private String type;
private Map<String,ForwardModel> fMap=new HashMap<String,ForwardModel>();
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;
}
//两个行为,增加forwardModel对象,查找forwardModel对象
//将一个新的forward 标签对象加入容器
public void push(ForwardModel forwoardModel) {
fMap.put(forwoardModel.getName(), forwoardModel);
}
public ForwardModel pop(String name) {
return fMap.get(name);
}
}
ConfigModel.java
package com.zsm.model;
import java.util.HashMap;
import java.util.Map;
public class ConfigModel {
private Map<String, ActionModel> aMap=new HashMap<>();
public void push(ActionModel actionModel) {
aMap.put(actionModel.getPath(),actionModel);
}
public ActionModel pop(String path) {
return aMap.get(path);
}
}
二、工厂模式
1.为什么要使用工厂模式
能够提高代码的复用性
2.怎样使用工厂模式
只要建立一