责任链模式

责任链模式里,很多对象由每一个对象对其下家的引用二连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,使得系统在不影响客户端的情况下动态地重新组织链和分配责任

 

纯与不纯的责任链模式

一个纯的责任链模式要求一个具体的处理者对象只能在两个行为中选择一个:

一个是承担责任,二是把责任推给下一家。不允许出现某一个具体处理对象在承担了一部分责任后又把责任向下传的情况

 

在一个纯的责任链模式里面,一个请求必须被某一个处理者对象所接收;在一个不纯的责任链模式里面,一个请求可以最终不被任何接收端对象所接收

 

public abstract class Handler {

    protected Handler successor;

    /**
     * 处理方法,调用此方法处理请求
     */
    public abstract void handleRequest();

    /**
     * 赋值方法,调用此方法设定下家
     */
    public void setSuccessor(Handler successor) {
        this.successor = successor;
    }

    /**
     * 取值方法
     */
    public Handler getSuccessor() {
        return successor;
    }
}

 

public class ConcreteHandler extends Handler {
    private String name;

    public ConcreteHandler() {
    }

    public ConcreteHandler(String name) {
        this.name = name;
    }

    /**
     * 处理方法,调用此方法处理请求
     */
    @Override
    public void handleRequest() {
        if (getSuccessor() != null) {
            System.out.println("the request is passed to " + getSuccessor());
            getSuccessor().handleRequest();
        } else {
            System.out.println("the request is handled by " + this.name);
        }
    }

    @Override
    public String toString() {
        return this.name;
    }
}

 

public class Client {

    private static Handler handler1, handler2,handler3;
    /**
     * 客户端创建了三个处理对象,并指定第一个处理者对象的下一家是第二个处理对象,
     * 第二个处理对象的下一家是第三个处理对象,第三个处理对象没有下家,第三个对象自行处理请求
     */
    public static void main(String[] args) {
        handler1 = new ConcreteHandler("handler1");
        handler2 = new ConcreteHandler("handler2");
        handler3 = new ConcreteHandler("handler3");
        handler1.setSuccessor(handler2);
        handler2.setSuccessor(handler3);
        
        handler1.handleRequest();
    }
}

 

【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值