Java学习从这里JavaVideo开始

JavaVideo java学习从这里开始

当前位置: 主页 > 技术精选 >

设计模式实际应用场景(转)(9)

时间:2012-01-24 20:03来源: 作者:admin 点击:
public Object bind(Object origin){ return Proxy.newProxyInstance(origin.getClass().getClassLoader(),origin.getClass.getInterfaces(),this); } } public class Test{ public static void main(String[] args)

    public Object bind(Object origin){

        return Proxy.newProxyInstance(origin.getClass().getClassLoader(),origin.getClass.getInterfaces(),this);

    }

}

 

public class Test{

    public static void main(String[] args){

        BusinessInterface businessObj = new BusinessObject();

        LoggerProxy dynamicProxy = new LoggerProxy(businessObj );

        BusinessInterface  proxyObj = (BusinessInterface)dynamicProxy.bind(businessObj);

        proxyObj.processBusiness();

        //print result

        //method before........

        //business logic......

        //method after.......

    }

}

 

 

11、责任链模式

//抽象类中包含一个具体子类对象的引用

public abstract class Handler{

    //下一个处理者

    protected Handler successor;

    //处理请求

    public void handleRequest(Request request){

        //如果下家处理者存在

        if(successor!=null){

            successor.next();

        }

    }

    

    public Handler getSuccessor(){

        return successor;

    }

    

    public void setSuccessor(Handler successor){

        this.successor = success

    }
}

 

//具体处理者持有下家处理者的引用

public class ConcreteHandlerA{

        

    public ConcreteHandlerA(Handler successor){

        this.setSuccessor(successor);

    }

 

    public absract void handleRequest(Request request){

        if(request.type=="1"){

            //....处理请求

        }else{

             //交给下家管理者

            getSuccessor().handleRequest(request);        

        } 

    }

}

 

//具体处理者持有下家处理者的引用

public class ConcreteHandlerB{

        

    public ConcreteHandlerB(Handler successor){

        this.setSuccessor(successor);

    }

 

    public absract void handleRequest(Request request){

        if(request.type=="2"){

            //处理请求

        }else{

             //如果下家处理者存在,交给下家管理者

            getSuccessor().handleRequest(request);

        } 

    }

}

 

 

//具体处理者持有下家处理者的引用

public class ConcreteHandlerC{

        

    public ConcreteHandlerC(Handler successor){

        this.setSuccessor(successor);

    }

 

    public absract void handleRequest(Request request){

        if(request.type=="3"){

            //处理请求

        }else{

             //如果下家处理者存在,交给下家管理者

(责任编辑:JavaVideo)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容