java常用设计模式(观察者模式)
来源:互联网 发布:北京sem优化师 编辑:程序博客网 时间:2024/05/16 09:48
一:观察者模式又可称为发布/订阅(Publish/Subscribe)模式,例如今天发工资了,大家手机都来短信通知了,快看啊,600.~,当到发工资的时候,会自动推送消息到每个人,假如你离职了,财务可以把你的手机移除,有新人入职,又可以添加.还可以给你涨工资601.
public interface Salary {//发送短信通知void sendmessage();//不给离职人员发void removeEmp(Employees employees);//给新入职人员发void addEmp(Employees employees);}
public interface Employees {public void receive(String salrayNum);}
public class Boss implements Salary {List<Employees> emp = new ArrayList<>();String salaryNum;@Overridepublic void removeEmp(Employees employees) {int i = emp.indexOf(employees);if (i>=0) {emp.remove(employees);System.out.println("老板移除了:"+((Employee)employees).name);}}@Overridepublic void addEmp(Employees employees) {emp.add(employees);}@Overridepublic void sendmessage() {for (int i = 0; i < emp.size(); i++) {emp.get(i).receive(salaryNum);}} public void changeSalary(String salaryNum){this.salaryNum = salaryNum;System.out.println("老板发了"+salaryNum+"钱");this.sendmessage();}}
public class Employee implements Employees {public Boss boss;public String name;public String getName() {return name;}public Employee(String name,Boss boss) {this.name=name;this.boss=boss;boss.addEmp(this);}@Overridepublic void receive(String salaryNum) {System.out.println(this.name+"收到了:"+salaryNum+"钱");}}
public class Test {@SuppressWarnings("unused")public static void main(String[] args) {Boss boss = new Boss();Employees A = new Employee("A", boss);Employees B = new Employee("B", boss);Employees C = new Employee("C", boss);//boss.removeEmp(A);boss.changeSalary("500");} //老板发了500钱 A收到了:500钱 B收到了:500钱 C收到了:500钱 //老板移除了:A 老板发了500钱 B收到了:500钱 C收到了:500钱 }
阅读全文
0 0
- java常用设计模式(观察者模式)
- java设计模式-----观察者
- JAVA 观察者设计模式
- java观察者设计模式
- java观察者设计模式
- java 观察者设计模式
- JAVA-观察者设计模式
- JAVA设计模式--观察者
- Java---观察者设计模式
- Java设计模式:观察者
- Java设计模式-观察者
- java观察者设计模式
- java设计模式-观察者模式
- java设计模式---观察者模式
- java设计模式---观察者模式
- java设计模式---观察者模式
- java设计模式-----观察者模式
- java 设计模式---->观察者模式
- 洛谷 P1854 花店橱窗布置
- linux进程间通信-信号量
- linux中软件安装
- [数学理论]不同分布训练集、验证集、测试集处理
- LeetCode-Two Sum
- java常用设计模式(观察者模式)
- android 设置Button或者ImageButton的背景透明
- 类 手机
- 编写程序,用0-1之间的随机数来模拟扔硬币试验,统计扔1000次后出现正反面的次数并输出。
- StatelistDrawable 状态选择器失灵
- UVA10891(区间DP)
- 【BZOJ1087】【SCOI2005】互不侵犯
- 第一次写
- OSPF协议