当前位置: > 投稿>正文

新加坡跟中国的时差多少,新加坡时差和中国时差差多少(备忘录模式不只是记录怕忘记的东西那么简单)

02-05 互联网 未知 投稿

关于【新加坡跟中国的时差多少】,新加坡时差和中国时差差多少,今天涌涌小编给您分享一下,如果对您有所帮助别忘了关注本站哦。

1、「设计模式」备忘录模式不只是记录怕忘记的东西那么简单

什么是备忘录模式(Memento)

概念

备忘录(Memento)模式属于「行为型模式」,又叫作快照模式,定义:在不破坏封装性的前提下,捕获一个对象内部的状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。简单来说,就是「保存一个对象之前的状态,然后在某个时间回退到这个状态」

我们使用的很多软件都提供了这个功能,我们使用的编辑工具,word、记事本、idea、typora等等,ctrl+z就可以回退自己的操作,「可以防止我们的误操作」。还有浏览器的倒退,可以让我们回到上一个页面。游戏中的存档,我们可以自己提前存入一个档,以后可以再次退回来。

新加坡跟中国的时差多少,新加坡时差和中国时差差多少(备忘录模式不只是记录怕忘记的东西那么简单)

ctrl+z

优点

  1. 给用户提供了一种可以恢复状态的机制,用户可以回退自己的操作。
  2. 封装了内部状态。想要使用备忘录模式,需要把内部的数据都封装成一个状态。
  3. 符合单一职责原则。由发起类无需管理状态,由管理类来管理状态。

缺点

  1. 需要大量的资源。要保存状态对象是需要消耗内存资源,可以考虑设置一个状态对象的上限。

原则

“+”代表遵守,“-”代表不遵守或者不相关

原则开放封闭单一职责迪米特里氏替换依赖倒置接口隔离合成复用-++----

适用场景

  1. 需要保存和恢复数据的情况。
  2. 需要撤销操作的情况。

这两种常见的代码实现会有一点点的不同,后面的例子中我会标注一下的。

如何实现

想要实现备忘录模式,需要以下三样东西:

  1. 发起类(Originator):依赖备忘录对象,创建备忘录对象,提供创建备忘录和恢复备忘录,发起类可以访问备忘录中的信息。
  2. 备忘录类(Memento):记录发起类当前时刻的状态,并且保存在管理类中。
  3. 管理类(Caretaker):管理备忘录对象,提供存储,回退备忘录等操作,管理类不能访问备忘录对象内的信息。

类图

新加坡跟中国的时差多少,新加坡时差和中国时差差多少(备忘录模式不只是记录怕忘记的东西那么简单)

备忘录模式的结构图

新加坡跟中国的时差多少,新加坡时差和中国时差差多少(备忘录模式不只是记录怕忘记的东西那么简单)

上班小丑

开始敲代码!

举例

这里以记事本的回退操作为例,我们输入文字,每个版本的文字都保存起来,我们可以一个一个版本地回退。

「类图」

新加坡跟中国的时差多少,新加坡时差和中国时差差多少(备忘录模式不只是记录怕忘记的东西那么简单)

image-20210612225959096

「代码」

发起类

/** * 发起类 * 文本编辑器 * Created on 2021/6/12. * * @author xuxiaobai */public class TextEditor { //当前状态记录 private TextMemento currentRecord; //状态记录管理者 private TextCaretaker caretaker = new TextCaretaker(); /** * 提交文本记录 * * @param text */ public void commit(String text) { System.out.println("-----commit-----"); //更新当前记录 currentRecord = new TextMemento(text); //保存记录 caretaker.push(currentRecord); show(); } /** * 回退 */ public void ctrlZ() { System.out.println("-----ctrl+z-----"); TextMemento textMemento = caretaker.get(); if (textMemento == null) { //当备忘录为空,打印提示后返回 System.out.println("没有历史记录,无法回退"); return; } System.out.println("恢复记录"); this.currentRecord=textMemento; show(); } /** * 展示当前记录 */ public void show() { //获取备忘录中的text String text = currentRecord.getText(); System.out.println("当前记录为:“"+ (text ==null?"无": text)+"”"); }}

管理类

/** * * 文本备忘录管理类 * Created on 2021/6/12. * * @author xuxiaobai */public class TextCaretaker { /** * 备忘录存储栈 * 这是需要撤销操作的情况,才需要的 * 如果是需要保存和恢复数据的情况,可以考虑使用List来存储备忘录 */ Stack<TextMemento> stack=new Stack<>(); public void push(TextMemento memento){ stack.push(memento); } public TextMemento get(){ return stack.pop(); }}

备忘录类

/** * 文本备忘录 * Created on 2021/6/12. * * @author xuxiaobai */public class TextMemento { /** * 文本的属性 * 这里以String为例 * 如果你想更加复杂一点,可以增加多一点的属性 */ private String text; public TextMemento(String text){ this.text =text; } public String getText() { return text; } public TextMemento setText(String text) { this.text = text; return this; }}

测试类

public class MementoTest { public static void main(String[] args) { //文本编辑器 TextEditor editor=new TextEditor(); StringBuilder text=new StringBuilder("第一个版本的文字"); editor.commit(text.toString()); editor.commit(text.append(",再加第二版本").toString()); editor.commit(text.append(",再加第三版本").toString()); editor.show(); editor.ctrlZ(); editor.ctrlZ(); editor.ctrlZ(); /** * 结果: * -----commit----- * 当前记录为:“第一个版本的文字” * -----commit----- * 当前记录为:“第一个版本的文字,再加第二版本” * -----commit----- * 当前记录为:“第一个版本的文字,再加第二版本,再加第三版本” * 当前记录为:“第一个版本的文字,再加第二版本,再加第三版本” * -----ctrl+z----- * 恢复记录 * 当前记录为:“第一个版本的文字,再加第二版本,再加第三版本” * -----ctrl+z----- * 恢复记录 * 当前记录为:“第一个版本的文字,再加第二版本” * -----ctrl+z----- * 恢复记录 * 当前记录为:“第一个版本的文字” */ }}

这里的例子我都是直接创建对象的,偶尔偷个懒嘛,我这里建议在实际开发中运用的话,还是要去创建一个顶层的接口,然后声明的时候依赖于接口,这样才符合依赖倒转原则嘛。

新加坡跟中国的时差多少,新加坡时差和中国时差差多少(备忘录模式不只是记录怕忘记的东西那么简单)

小黄鸡扯紫色内裤动图

总结

备忘录模式和其他模式相比有很大的不同,它是为了能让我们「回退我们的操作」,保存了过往的状态,我们在合适的时间恢复。在使用备忘录模式时需要注意,只有发起类这个角色才能去组合备忘录和管理者,不要把这两个角色暴露给这个模式外的对象,也只有发起类才能去读取备忘录中的数据,管理者只负责管理备忘录,还有呢,使用备忘录模式是需要「消耗内存」的,也可以考虑把这些备忘录写入到数据库中,不过使用的时候还是得写入内存中。

2、新加坡跟中国的时差多少:新加坡时差和中国时差差多少

新加坡时差和中国时差差多少的答案是:没有时差

新加坡和中国是没有时差的,都属于东8区区时。马来西亚独立后用东7.5的区时,它的三个主要部分马来亚,沙捞越,沙巴分别在东7区和东八区。

后来马来西亚统一用东八区区时,新加坡由于和马来西亚来往密切,地域相关,虽然在东七区也用东八区的区时。

而且新加坡比较小,周围都是东八区,自己单独用一个地方时,与周围交流太不方便,故与周围相同。

新加坡共和国(英语:Republic of Singapore),简称新加坡,城市基础设施排名世界第一、 旧称新嘉坡、星洲或星岛,别称为狮城,是东南亚的一个岛国,政治体制实行议会共和制,首都为新加坡市。新加坡位于马来半岛南端、马六甲海峡出入口,由新加坡岛及附近63个小岛组成,其中新加坡岛占全国面积的88.5%。新加坡岛东西约50千米,南北约26千米,国土面积728.6平方千米。截至2021年8月,新加坡总人口568.6万,公民和永久居民404.4万。 主要民族为华族、马来族、印度族。

新加坡古称淡马锡。8世纪属室利佛逝王朝。18—19世纪是马来柔佛王国的一部分。1819年,英国人史丹福·莱佛士抵达新加坡,与柔佛苏丹订约,设立贸易站。1824年,沦为英国殖民地。1942年被日本占领。1945年日本投降后,英国恢复殖民统治,次年划为直属殖民地。1959年实现自治,成为自治邦。1963年9月与马来亚、沙巴、沙捞越共同组成马来西亚联邦。1965年8月9日脱离马来西亚,成立新加坡共和国;同年9月成为联合国成员国,同年10月加入英联邦。

新加坡是一个城邦国家,故无省市之分,而是以符合都市规划的方式将全国划分为五个社区(行政区),定名为东北、东南、西北、西南和中区社理会,2020年,这五个社区分为31个选区,包括14个单选区和17个集选区。

新加坡为亚洲四小龙之一。2020年,新加坡国内生产总值为3400亿美元,人均国内生产总值为5.98万美元,国内生产总值增长率为-5.8%,贸易总额为6923.6亿美元。

时区范围是中央经线的度数向左右分别减加7.5度,即东西方向跨越15度,以东八区为例,其时区范围是东经112.5度至东经127.5度。

用该地的经度除以15度,当余数小于7.5度时,商数即为该地所在的时区数,当余数大于7.5度时,商数加1即为该地所在的时区数。

如已知某地位于145度E,用145/15,商数为9,余数为10>7.5,商数加1即为该地的时区数,所以该地位于东10区。

再假如某地位于65度W,用65/15,商数为4,余数为5< 7.5,商数即为该地所在的时区数,则该地位于西4区。

1、平太阳时和真太阳时的差。一年之中时差是不断改变的,最大正值是+14分24秒,最大负值是 -16分24秒,有4次等于零。

2、两个地区地方时之间的差别称作为时差。

各地的标准时间为格林威治时间(G.M.T)加上 (+) 或减去 (-) 时区中所标的小时和分钟数时差。许多国家还采用夏令时(DST), 比如美国每年4月到9月实行夏令时,时间提前一个小时。

时差的计算方法:两个时区标准时间(即时区数)相减就是时差,时区的数值大的时间早。比如中国是东八区(+8),美国东部是西五区(-5),两地的时差是13小时,北京比纽约要早13个小时;如果是美国实行夏令时的时期,相差12小时。

本文关键词:中国与新加坡时差,中国跟新加坡时差是多少,新加坡时差与中国时差,新加坡时差和中国时差差多少天,中国和新加坡时差是多少。这就是关于《新加坡跟中国的时差多少,新加坡时差和中国时差差多少(备忘录模式不只是记录怕忘记的东西那么简单)》的所有内容,希望对您能有所帮助!更多的知识请继续关注《犇涌向乾》百科知识网站:http://www.029ztxx.com!

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。

猜你喜欢