zoukankan      html  css  js  c++  java
  • 什么是非侵入式设计?

    一个客户端的代码可能包含框架功能和客户端自己的功能。

    侵入式设计,就是设计者将框架功能“推”给客户端,而非侵入式设计,则是设计者将客户端的功能“拿”到框架中用。

    侵入式设计有时候表现为客户端需要继承框架中的类,而非侵入式设计则表现为客户端实现框架提供的接口。

    侵入式设计带来的最大缺陷是,当你决定重构你的代码时,发现之前写过的代码只能扔掉。而非侵入式设计则不然,之前写过的代码仍有价值。

    struts1的设计是侵入式的:

    [java] view plain  copy   public class loginAction extends Action{

    public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws ActionException{

    LoginForm loginForm = (LoginForm)form;

    if(“scott”.equals(loginForm.getUsername() &&”tiger”.equals(loginForm.getPassword)))

    { return mapping.findForward(“success”);}

    else{

    return mapping.findForward(“failure”);}

    }

    }

    而webwork的设计则是非侵入的:

    [java] view plain  copy   public class LoginAction implements Action{

    private final static String LOGINFAIL = “loginfail”;

    private final static String SUCCESS = “success”;

    private String passward;

    private String username;

    public String getPassword(){

    return password;

    }

    public void setPassword(String password){

    this.password = password;

    }

    public String getUsername(){

    return username;

    }

    public void setUsername(String username){

    this.username= username;

    }

    public String execute() throws Exception{

    if(“yeeku”.equalsIgnoreCase(getUsername())&& “password”.equals(getPassword)){

    ActionContext ctx= ActionContext.getContext();

    Map session = ctx.getSession();

    session.put(“username”,getUsername());

    return SUCCESS;

    }

    else return LOGINFAIL;

    }

    }

  • 相关阅读:
    ubuntu问题集锦
    得把这个事情坚持下来
    海贼王有啥好看的?
    虚拟机网络连不上怎么办?
    耍耍Windows Live Writer
    Jquey模糊选择
    JS网址正则验证
    PowerDesigner 同步Name到Comment 及 同步 Comment 到Name
    进程调用系统默认和邮件客户端并附加指定文件
    Form.DialogResult 属性
  • 原文地址:https://www.cnblogs.com/heartstage/p/3365413.html
Copyright © 2011-2022 走看看