我是
靠谱客的博主
大气洋葱,最近开发中收集的这篇文章主要介绍
观察者、备忘录模式,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
实验目的与任务 目的:熟悉UML的使用,熟悉观察者、备忘录模式。 任务:按照实验内容要求,完成使用观察者、备忘录模式实现实验内容。 |
预习内容 复习课程的内容,熟悉观察者、备忘录模式的使用。 |
实验内容及要求
1、商品有名称、价格等信息,价格会有折扣等变动,如果变动后价格会自动通知关注该商品的用户,请结合观察者模式,设计出类图并给出相关代码。
- 备忘录模式:
- Windows系统可能会异常,需要一个备份系统,请结合备忘录模式实现该工具,给出类图和代码。
|
实验结果(可续页) 一: Subject(目标):
package observer; import java.awt.List; import java.util.ArrayList; /* * 目标类,在这里指商品 */ public class Subject{ ArrayList<Observer> list = new ArrayList<Observer>(); public void attach(Observer observer){ list.add(observer); System.out.println("添加了一个观察者!"); } public void detach(Observer observer){ list.remove(observer); System.out.println("删除了一个观察者!"); } void notifyObservers(int price){ for(Observer observer:list) observer.update(price); } } |
ConcreteSubject(具体目标):
package observer; import java.awt.List; import java.util.ArrayList; /* * 具体目标,这里是笔 */ public class ConcreteSubject extends Subject{ private String name; private int price; public ConcreteSubject(String name,int price){ this.name=name; this.price=price; } public void change(int price){ this.price=price; notifyObservers(price); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } } |
Observer(观察者):
package observer; /* * 观察者 */ public interface Observer { public void update(int price); } |
ConcreteObserver(具体观察者):
package observer; /* * 具体观察者 */ public class ConcreteObserver implements Observer{ private int price; @Override public void update(int price) { // TODO Auto-generated method stub this.price=price; System.out.println("商品价格变动为:"+price); } } |
Main:
package observer; public class Main { public static void main(String args[]){ Subject pen=new ConcreteSubject("铅笔",10); ConcreteObserver client=new ConcreteObserver(); pen.attach(client); pen.notifyObservers(15); } } |
类图: 结果: 二: Originator(原发器):
Memento(备忘录):
Caretaker(负责人):
Main:
结果: 类图: 思考题:
- 我和妹妹跟妈妈说:“妈妈,我和妹妹在院子里玩,饭做好了叫我们一声”。请问这是什么模式?请给出类图。
观察者模式. 2、假设有两个网站site1、site2,当一个用户进入site1后,使用了session来记录。当用户现在访问site2一段时间,这时用户访问site1就会session失效,请问如何保存session来解决这个问题? 通过备忘录模式解决。用户一开始访问site1时开启备忘录模式,将session信息备份一边,当用户访问site2一段时间后再访问site1,打开备忘录模式,将备份的session信息导出替换。 |
最后
以上就是大气洋葱为你收集整理的观察者、备忘录模式的全部内容,希望文章能够帮你解决观察者、备忘录模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复