备忘录模式的探讨

1.代码

/*
This is a free Program, You can modify or redistribute it under the terms of GNU
*Description:一个简单的备忘录模式
*备忘录模式: http://baike.baidu.com/view/3591132.htm
*Language: Java
*Development Environment: Eclipse
*Author: Wangzhicheng
*E-mail: 2363702560@qq.com
*Date: 2012/10/24
*/
/*
 * 备忘录类,保存发起者的所有状态
 * */
class Memo {
	private  Object state1=new Object();    //与Originator的状态一致
	private  Object state2=new Object();
	private  Object state3=new Object();
	private  Object state4=new Object();
	public Memo() {
	}
	public void setState1(Object state) {
		this.state1=state;
	}
	public final Object getState1() {
		return this.state1;
	}
	public void setState2(Object state) {
		this.state2=state;
	}
	public final Object getState2() {
		return this.state2;
	}
	public void setState3(Object state) {
		this.state3=state;
	}
	public final Object getState3() {
		return this.state3;
	}	
	public void setState4(Object state) {
		this.state4=state;
	}
	public final Object getState4() {
		return this.state4;
	}
}
/*
 * ManageMemo负责管理Memo类
 * 不涉及Memo的内部操作和属性
 * */
class ManageMemo {
	private Memo mMemo;
	public ManageMemo() {
	}
	public void SetMemo(Memo m) {
		this.mMemo=m;
	}
	public final Memo GetMemo() {
		return this.mMemo;
	}
}

/*
 * Originator主要是用来创建或者恢复状态
 * */
class Originator {
	private Object state1=new Object();   //状态1
	private Object state2=new Object();   //状态2
	private Object state3=new Object();   //状态3
	private Object state4=new Object();   //状态4
	public Originator() {
	}
	public Originator(Object s1,Object s2,Object s3,Object s4) {
		state1=s1;
		state2=s2;
		state3=s3;
		state4=s4;
	}
	public void setState1(Object state) {
		this.state1=state;
	}
	public final Object getState1() {
		return this.state1;
	}
	public void setState2(Object state) {
		this.state2=state;
	}
	public final Object getState2() {
		return this.state2;
	}
	public void setState3(Object state) {
		this.state3=state;
	}
	public final Object getState3() {
		return this.state3;
	}	
	public void setState4(Object state) {
		this.state4=state;
	}
	public final Object getState4() {
		return this.state4;
	}
	/*
	 * 创建备忘录类的方法
	 * */
	public Memo CreateMemo() {
		Memo m=new Memo();
		m.setState1(this.getState1());
		m.setState2(this.getState2());
		m.setState3(this.getState3());
		m.setState4(this.getState4());
		return m;
	}
	public void RestoreMemo(Memo m) {
		this.setState1(m.getState1());
		this.setState2(m.getState2());
		this.setState3(m.getState3());
		this.setState4(m.getState4());
	}
	public final void showState() {
		System.out.println("当前各状态是:");
		System.out.println(this.getState1());
		System.out.println(this.getState2());
		System.out.println(this.getState3());
		System.out.println(this.getState4());
		System.out.println("----------------");
	}
}
/*
 * 客户方程序
 * */
public class MemoPattern {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		 //创建一个当前对象,有4种状态
		Originator object=new Originator("state1","state2","state3","state4");
		object.showState();
		//保存对象的状态 
		ManageMemo manager=new ManageMemo();
		manager.SetMemo(object.CreateMemo());
		object.setState1("state01");
		object.setState2("state02");
		object.setState3("state03");
		object.setState4("state04");
		object.showState();
		//恢复对象保存的状态
		object.RestoreMemo(manager.GetMemo());
		object.showState();
	}
}


 

2. 测试

当前各状态是:
state1
state2
state3
state4
----------------
当前各状态是:
state01
state02
state03
state04
----------------
当前各状态是:
state1
state2
state3
state4
----------------

资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在本文中,我们将探讨如何通过 Vue.js 实现一个带有动画效果的“回到顶部”功能。Vue.js 是一款用于构建用户界面的流行 JavaScript 框架,其组件化和响应式设计让实现这种交互功能变得十分便捷。 首先,我们来分析 HTML 代码。在这个示例中,存在一个 ID 为 back-to-top 的 div 元素,其中包含两个 span 标签,分别显示“回到”和“顶部”文字。该 div 元素绑定了 Vue.js 的 @click 事件处理器 backToTop,用于处理点击事件,同时还绑定了 v-show 指令来控制按钮的显示与隐藏。v-cloak 指令的作用是在 Vue 实例渲染完成之前隐藏该元素,避免出现闪烁现象。 CSS 部分(backTop.css)主要负责样式设计。它首先清除了一些默认的边距和填充,对 html 和 body 进行了全屏布局,并设置了相对定位。.back-to-top 类则定义了“回到顶部”按钮的样式,包括其位置、圆角、阴影、填充以及悬停时背景颜色的变化。此外,与 v-cloak 相关的 CSS 确保在 Vue 实例加载过程中隐藏该元素。每个 .page 类代表一个页面,每个页面的高度设置为 400px,用于模拟多页面的滚动效果。 接下来是 JavaScript 部分(backTop.js)。在这里,我们创建了一个 Vue 实例。实例的 el 属性指定 Vue 将挂载到的 DOM 元素(#back-to-top)。data 对象中包含三个属性:backTopShow 用于控制按钮的显示状态;backTopAllow 用于防止用户快速连续点击;backSeconds 定义了回到顶部所需的时间;showPx 则规定了滚动多少像素后显示“回到顶部”按钮。 在 V
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值