观察者模式-学习笔记

观察者模式在Java中的应用
设计模式中 观察者模式在java中已经实现,只需继承Observable类,然后实现Observer接口即可。
设计模式学习最重要是先明白应用场景,然后再将模式引用进来即可事半功倍!

涉及实际场景:

如某SNS网站都有相册模块,对相册的评论及赞也是很多网站都会加入的功能。
评论者看到一个美女图片,觉得不错,赞一个!
在赞的同时:
1.我们有一个计数功能,来统计每一个相片的赞数量;
2.我们给美女一个message,告诉她有多了一个倾慕者;
此时即可用到观察者模式。

不废话,上源码:




import java.util.Observable;
/**
* 观察者模式
* @author
*
*/

public class CommendThePicture extends Observable{
//相片ID
int picId;
//讯息
String message;
public CommendThePicture(){
}
//赞美女图片
public void toCommendPic(int picId){
System.out.println("赞美女的照片:");
setChanged();
notifyObservers(picId);
}
//传送MESSAGE
public void toSendMessage(String message){
System.out.println("message如下:");
setChanged();
notifyObservers(message);
}

public int getPicId() {
return picId;
}

public void setPicId(int picId) {
this.picId = picId;
}


}






import java.util.Observable;
import java.util.Observer;
/**
* 计数
* @author
*
*/
public class CountObserver implements Observer{

@Override
public void update(Observable o, Object arg) {
if(arg instanceof Integer){
commendNumDao((Integer)arg);
}
}
//调用数据层获取统计数据
public void commendNumDao(int picId){
System.out.println("ID="+picId+"的美女照片现在一共有222个人流口水!");
}

}




import java.util.Observable;
import java.util.Observer;
/**
* message
* @author
*
*/
public class MessageObserver implements Observer{

@Override
public void update(Observable o, Object arg) {
if(arg instanceof String){
sayToGirl((String)arg);
}

}

public void sayToGirl(String message){
System.out.println("对MM表白:"+message);
}

}


/**
* test
* @author
*
*/
public class Test {
public static void main(String[] argv){
CommendThePicture c = new CommendThePicture();
//相片ID
int picId = 1200;
String message = "好漂亮的MM哦!";
c.addObserver(new CountObserver());
c.addObserver(new MessageObserver());
c.toCommendPic(picId);
c.toSendMessage(message);
}
}



运行结果如下:

赞美女的照片:
ID=1200的美女照片现在一共有222个人流口水!
message如下:
对MM表白:好漂亮的MM哦!
【无人机】湍流天气下发动机故障时自动着陆的多级适配研究(Matlab代码实现)内容概要:本文围绕“湍流天气下发动机故障时无人机自动着陆的多级适配研究”展开,提出了一种在极端气象条件下应对无人机动力系统突发故障的自动着陆控制策略。通过构建多级适配控制架构,结合鲁棒控制与自适应算法,提升无人机在湍流干扰下的稳定性和安全性,确保其在发动机部分或完全失效情况下仍能实现平稳着陆。研究采用Matlab进行系统建模与仿真验证,涵盖了飞行动力学模型、故障检测机制、姿态控制律设计及着陆轨迹规划等关键环节,重点解决了强扰动环境下的系统不确定性与控制性能退化问题。; 适合人群:具备一定飞行器控制、自动控制理论基础,熟悉Matlab仿真工具的研究生、科研人员及从事无人机系统开发的工程师;尤其适合研究无人机容错控制、飞行安全与应急着陆技术的相关从业者。; 使用场景及目标:①研究无人机在突发故障与复杂气象耦合条件下的安全着陆机制;②开发具备高鲁棒性的容错飞控系统;③为无人机适航安全标准提供理论支持与仿真验证手段;④应用于军事侦察、电力巡检、应急救援等高风险作业场景中的自主安全决策系统设计。; 阅读建议:建议读者结合Matlab代码深入理解控制算法的实现细节,重点关注多级控制器的设计逻辑与故障切换策略,同时可通过修改湍流强度、故障模式等参数进行仿真对比,以掌握系统在不同工况下的响应特性与适应能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值