public class XMLNodePolicy
{
public static final XMLNodeAction DISPLAY_NODE = new DisplayNode;
public static final XMLNodeAction SAVE_NODE = new SaveNode;
private class DisplayNode implements XMLNodeAction
{
public void processNode(Node node)
{
//todo
}
}
private class SaveNode implements XMLNodeAction
{
public void processNode(Node node)
{
//todo
}
}
}
public interface XMLNodeAction {
void processNode(Node node);
}
采用用户实现的方案的话,基本上如楼上所说。
如果自己实现,但由用户选择,那可以创建一个代理类。
public class XMLNodeActionManager {
public static final int DISPLAY_NODE = 0, SAVE_NODE = 1;
public XMLNodeAction getXMLNodeAction(int type) {
switch(type) {
case DISPLAY_NODE:
return new DisplayNode();
break;
case SAVE_NODE:
return new SaveNode();
break;