![设计模式实验报告范文_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-5/25/983a6b42-16f1-4d15-9973-493ce4848aeb/983a6b42-16f1-4d15-9973-493ce4848aeb1.gif)
![设计模式实验报告范文_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-5/25/983a6b42-16f1-4d15-9973-493ce4848aeb/983a6b42-16f1-4d15-9973-493ce4848aeb2.gif)
![设计模式实验报告范文_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-5/25/983a6b42-16f1-4d15-9973-493ce4848aeb/983a6b42-16f1-4d15-9973-493ce4848aeb3.gif)
![设计模式实验报告范文_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-5/25/983a6b42-16f1-4d15-9973-493ce4848aeb/983a6b42-16f1-4d15-9973-493ce4848aeb4.gif)
![设计模式实验报告范文_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-5/25/983a6b42-16f1-4d15-9973-493ce4848aeb/983a6b42-16f1-4d15-9973-493ce4848aeb5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、设计模式实验指导书 10 学时 教 师: 张 凯 实验一工厂模式的应用 【实验目的】 1)掌握工厂模式(Factory)的特点 2)分析具体问题,使用工厂模式进行设计。 【实验内容和要求】 有一个OEM制造商代理做HP笔记本电脑(Laptop),后来该制造商得到了更 多的品牌笔记本电脑的订单 Acer,Lenovo, Dell,该OEM商发现,如果一次同 时做很多个牌子的本本,有些不利于管理。利用工厂模式改善设计,用 C#控制 台应用程序实现该OEM制造商的工厂模式。绘制该模式的 UML图。 【模式UML图】 +: Copu.l.*tr D11 1r + cputwrlg: 0: void t
2、 cetHambwrc 0 ; voad 1 -JT- 1 + tH-uiliTnr 0:d EDJFaetory 4 cr0 : M-anliijf g: +零曹电() . . 【模式代码】 public class AbstractFactoryTest public static void main( Stri ng args) Hamburg h; Cola c; AbstractFactory af= new MDNFactory(); h=af.createHamburg(); c=af.createCola(); h.getHumburg(); c.getCola(); af=
3、new KDJFactory(); h=af.createHamburg(); c=af.createCola(); h.getHumburg(); c.getCola(); in terfaceAbstractFactory Hamburg createHamburg(); Cola createCola(); class MDNFactory impleme nts AbstractFactory Override public Hamburg createHamburg() return new MDNHamburg(); Override public Cola createCola(
4、) return new MDNCola(); class KDJFactory impleme nts AbstractFactory Override public Hamburg createHamburg() return new KDJHamburg(); Override public Cola createCola() return new KDJCola(); /* * kDJ class MDNHamburg implements Hamburg Override public void getHumburg() System. out .println( MDNHambur
5、g); class KDJHamburg impleme nts Hamburg Override public void getHumburg() / TODOAuto-ge nerated method stub System. out .println( KDJHamburg); in terfaceCola void getCola(); class MDNCola impleme nts Cola Override public void getCola() System. out .println( MDNCola); class KDJCola impleme ntsCola O
6、verride public void getCola() System. out .println( KDJCola); 【运行截图】 MDNHamburg MDNCola KDDHamburg KDJCola 【实验小结】 抽象工厂模式主要适用于以下情况: 一系列要独立于它的产品的创建、组合和表示时。、 一个系统要由多个产品系列中的一个来配置时。 当要强调一系列相关的产品对象的设计以便进行联合使用时。 当要提供一个产品类库,而只要显示它们的接口而不是实现时 实验三适配器模式的应用 【实验目的】 1) 掌握适配器模式(Adapter)的特点 2) 分析具体问题,使用适配器模式进行设计。 【实
7、验内容和要求】 一个软件团队开发绘图系统,设计了圆对象 (Circle)、矩形对象(Rectangle), 线对象(Line)都支持Draw()函数,即可以通过Draw()函数绘制图形。为了加快项 目进度,将角度对象(Angle)绘制功能交给了合作团队实现。但合作团队将角度 对象绘制函数定为了 DrawA ngle()。绘图系统提供给用户后,用户不满意,希望 能统一的调用,不用记太多命令。应用适配器模式,用C#控制台应用程序完善 该设计。绘制该模式的UML图。 【模式UM图】 + draw 0 : Rectangle AngleAdapter i n Angle 一 angle : Angle
8、 + draw () : void dravAngle () : void BFaint Client * draw 0 : veld 【模式代码】 public class AdapterTest public static void main( Stri ng args) Paint a= new An gleAdapter(); a. draw(); in terfacePai nt void draw(); class Circleimpleme ntsPai nt Override public void draw() System. out .println(圆圆); class
9、Recta ngleimpleme nts Pai nt Override public void draw() System. out .println(方方”); class Li ne impleme nts Pai nt Override public void draw() System. out .println(线线); class An gle public void DrawAngle() System. out .println(角度); class An gleAdapterimpleme ntsPai nt privateAn glea=new An gle(); Ov
10、erride public void draw() / TODOAuto-ge nerated method stub a. DrawA ngle(); 【运行截图】 角度 【实验小结】 适配器模式主要适用于以下情况: 当想要使用一个已经存在的类,但是该类的接口不符合现有的需求时。 当需要创建一个可以被复用的类, 该类能够与其他无关的类甚至无法预见的 类协同工作时。 当需要使用一个已经存在的子类,但是不可能对所有的都进行子类化以匹配 他们的接口时,对象适配器可以对其父类接口进行适配。 实验四桥接模式的应用 【实验目的】 1) 掌握桥接模式(Bridge)的特点 2) 分析具体问题,使用桥接模式
11、进行设计 【实验内容和要求】 一个 咖啡店 可以提 供大杯(JorumCoffee)、中 杯(MediumCoffee)、小杯 (SmallCoffee)的咖啡(Coffee),为了满足不同用户的口味,在咖啡中可以添加牛奶 (Milk),或者糖(Sugar),或者柠檬(Lemon),提供给用户不同口味的组合,如大 杯咖啡加牛奶,中杯咖啡加糖,小杯咖啡加柠檬,小杯咖啡加糖等。应用桥接模 式,用C#控制台应用程序实现该设计。绘制该模式的UML图。 【模式类图】 JorTuiCDfe -Coff public class BridgeTest public static void main( Str
12、i ng args) Bridge b; | b=new Sugar(); b. setCoffee( new JorumCoffee(); b. getCoffee(); b= new Milk(); b.setCoffee( new SmallCoffee(); b. getCoffee(); in terfaceCoffee void getCoffee(); class JorumCoffee impleme nts Coffee Override public void getCoffee() / TODOAuto-ge nerated method stub System. out
13、 .print( 大杯咖啡); class MediumCoffeeimpleme ntsCoffee Override public void getCoffee() / TODOAuto-ge nerated method stub System. out .print( 中杯咖啡); class SmallCoffee impleme nts Coffee Override public void getCoffee() / TODOAuto-ge nerated method stub System. out .print( 小杯咖啡); *配料 */ abstract class B
14、ridge protected Coffee c; void setCoffee(Coffee co) c=co; public void getCoffee() c. getCoffee(); class Sugarexte nds Bridge Override public void getCoffee() c. getCoffee(); System. out .println(加糖); class Milkexte nds Bridge Override publicvoid getCoffee() c.getCoffee(); System. out .println(加牛奶);
15、class Lem on exte nds Bridge Override public void getCoffee() c.getCoffee(); System, out .println(加柠檬”); 【运行截图】 大杯咖啡加糖 小杯咖啡加牛奶| 【实验小结】 桥接模式的适用情况有: 当不希望在抽象和它的实现之间有一个固定的绑定关系时。 当类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充时 当对一个抽象类的实现部分的修改应对客户不产生影响时。 实验五装饰模式的应用 【实验目的】 1)掌握装饰模式(Decorator)的特点 2)分析具体问题,使用装饰模式进行设计。 【实验内容和
16、要求】 喜羊羊逃命”游戏:喜羊羊被灰太狼追,喜羊羊最多5条命,灰太狼每咬到 喜羊羊一次,喜羊羊就要少一条命。在逃的过程中喜羊羊可以吃到三种苹果, 吃 红苹果”可以给喜羊羊加上保护罩,吃绿苹果”可以加快喜羊羊奔跑速度,吃黄 苹果”可以使喜羊羊趟着水跑。应用装饰模式,用C#控制台应用程序实现该设计。 绘制该模式的UML图。 提示:这个例子如果用类的继承来实现的话那可就麻烦了, 你需要为喜羊羊 派生3*2*1=6个子类(有保护罩的喜羊羊,奔跑速度加快的喜羊羊,会趟水的喜 羊羊,既有保护罩又会趟水的喜羊羊,奔跑速度快且会趟水的喜羊羊,有保护罩 且奔跑速度快的喜羊羊,有保护罩、奔跑速度快且会趟水的喜羊羊
17、) ,如果使用 装饰模式的那就不用派生诸多子类了,当喜羊羊每吃到一个苹果,我们就用装饰 模式给喜羊羊加一个动态增加一个新功能即可。 【模式类图】 + Opcr 口 11 专n O; VQi d + OperationO O s void Sw liilngK iYangyaria 0Xian.fi + Operation O : void 【模式代码】 public class DecoratorTestOI public static void main( Stri ng args) Con creteXiYY cxyy=new Con creteXiYY(); ProtectXiYangy
18、ang px= . new ProtectXiYangyang(); FastXiYa ngya ng fx=new FastXiYa ngya ng(); Swimi ngXiYa ngya ng sx=new Swimi ngXiYa ngya ng(); px.setXiYa ngya ng(cxyy); px.Operati on(); fx.setXiYangyang(px); fx.Operati on(); sx.setXiYa ngya ng(fx); sx.Operati on(); in terfaceXiYa ngya ng public void Operation()
19、; class Con creteXiYYimpleme nts XiYa ngya ng Override public void Operation() / TODOAuto-ge nerated method stub System. out .println(喜羊羊); abstract class Decorator impleme nts XiYa ngya ng protected XiYa ngya ng xyy; public void setXiYangyang(XiYangyang xyy) this . xyy =xyy; Override public void Op
20、eration() / TODOAuto-ge nerated method stub xyy .Operation(); class ProtectXiYa ngya ngexte nds Decorator Override public void Operation() / TODOAuto-ge nerated method stub System. out .print(有保护罩的”); super .Operation(); class FastXiYa ngya ngexte nds Decorator Override public void Operation() / TOD
21、OAuto-ge nerated method stub System. out .print(加速的”); super .Operation(); class Swimi ngXiYa ngya ngexte nds Decorator Override public void Operation() / TODOAuto-ge nerated method stub System. out .print(会游泳的”); super .Operation(); 【运行截图】 有保护罩的喜羊羊 加速的有保护罩的喜羊羊 会游泳的加速的有保护罩的喜羊羊 【实验小结】 装饰模式的适用情况有: 当需要
22、以不影响其他对象为前提实现动态、透明地给单个对象添加职责时 当需要将对象的某些职责进行撤销操作时。 当不能用生成子类的方法进行当前系统的扩充时。 实验六代理模式的应用 【实验目的】 1)掌握代理模式(Proxy)的特点 2)分析具体问题,使用代理模式进行设计。 【实验内容和要求】 生产商(Factory)需要销售商品(Product),网上商城(E-Shop)提供了一个平台, 可以帮助销售这些商品,获得更大的销量。当顾客 (Custo m)从网上商城选购商品 的时候,实际是从生产商获得的商品。应用代理模式,用 C#控制台应用程序改 进该设计。绘制该模式的UML图。 【模式UM图】 【实验代码】
23、 public class ProxyTest01 public / static void TODCAuto-ge nerated method stub main( Stri ng args) E_shop es= new E_shop(); duct(); abstract class Product public abstract void product(); class Factoryexte nds Product Override public void product() / TODOAuto-ge nerated method stub System. out
24、.println(”商品正在促销中,满一百减50.); class E_shop exte nds Product private Factory factory ; public E_shop() factory =new Factory(); Override public void product() / TODOAuto-ge nerated method stub factory .product(); 【运行截图】 商品正在促销中,满一百碱56. 【实验小结】 代理模式的有以下几种适用情况: 当需要为一个对象在不同的地址空间提供局部的代表时。 当需要创建开销非常大的对象时。 当需要
25、控制原始对象的访问时。 当需要再访问对象时执行一些附加操作时,比如通过代理对象计算访问实际 对象的次数。 实验七观察者模式的应用 【实验目的】 1)掌握外观模式(Observe)的特点 2)分析具体问题,使用外观模式进行设计。 【实验内容和要求】 网上商店中如果商品(product)在名称(name)、价格(price)等方面有变 化,系统能自动通知会员,将是网上商店区别传统商店的一大特色。 如何设计实 现?说明你所选择的设计模式,画出类关系图并指明各个类的角色。应用外观 模式,用C#控制台应用程序改进该设计。绘制该模式的 UML图。 【模式UML图】 【模式代码】 import java.u
26、til.ArrayList; public class ObeserverTest public static void main( Stri ng args) / TODOAuto-ge nerated method stub cs.Attach( new Con creteObserver(cs, 1 号会员 cs.Attach( new Con creteObserver(cs, 2 号会员 cs.Attach( new Con creteObserver(cs, 3 号会员 cs.Attach( new Con creteObserver(cs, 4 号会员 cs.setState(
27、C+编程思想价钱下降 100 元”); ); ); ); ); Con creteSubject cs=new Con creteSubject(); cs.Notify(); abstract class Observer public abstract void update(); class ConcreteObserver extends Observer private String name; private String state ; private ConcreteSubject cs; public ConcreteSubject getConcreteSubject()
28、return cs; public void setConcreteSubject(ConcreteSubject cs) this . cs =cs; public ConcreteObserver(ConcreteSubject cs,String name) this . cs =cs; this . name=name; Override public void update() / TODOAuto-generated method stub state =cs .getState(); System. out .println( name+ 观察到的状态是: +state ); a
29、bstract class Subject private ArrayList observers =new ArrayList(); public void Attach(Observer o) observers .add(o); public void Detach(Observer o) observers .remove(o); / 通知 public void Notify() for ( int i = 0; i observers .size(); i+) observers .get(i).update(); class Con creteSubjectexte nds Su
30、bject private String state ; public void setState(String state) this . state =state; public Stri ng getState() return state ; 【运行截图】 号会员观察到的状态是:C+编程思想价钱下降100元 2号会员观察到的状态是C+编程思想价钱下降1G0元 3号会员观察到的状态是;C+编程思想价钱下降100元 4号会员观察到的状态是:C+编程核想价钱下降108元 【实验小结】 观察者模式的适用情况有: 当一个抽象模型有两个方面,而其中一个方面必须依赖于另一个方面时。 当对一个对象的改
31、变需要同时改变其他对象但是却不知道具体有多少个对 象等到改变时。 当一个对象必须通知其他对象但是却不能与其他对象造成紧密耦合时。 实验八职责链模式的应用 【实验目的】 1) 掌握职责链模式(Chain of Responsibility)的特点 2) 分析具体问题,使用职责链模式进行设计。 【实验内容和要求】 高校学生请假需要符合学校规定,假如班主任可以批准1天假,系主任可以 批准7天假,各学院院长可以批准 30天,学校校长可以批准1年。应用职责链 模式,用C#控制台应用程序实现该设计。绘制该模式的 UML图。 【模式UM图】 Handler XlZhuRen + handleRequcst
32、()- void handl eftequ.es t # successor : Handler Handler + setSuccessor O : void void Abstract # successor : Handler + setSuccessor O : void + handle Han dler xzr=new XiZhuRe n(); Han dler xy=new XueYua n(); Han dler xx=new XueXiao(); fdy.setSuccessor(xzr); xzr.setSuccessor(xy); xy.setSuccessor(xx);
33、 for ( int i = 1; i 20; i+=2) fdy.ha ndleRequest(i); /处理请求的接口 abstract class Han dler protectedHan dlersuccessor ; public void setSuccessor(Handler successor this . successor =successor; public abstract void handleRequest( int request); class FuDaoYua n exte nds Han dler Override public void handleR
34、equest( int request) / TODOAuto-ge nerated method stub if (request=1) System. out .println( this .getClass().getSimpleName()+ 求+request); else if (this . successor != null ) System. out .println(this .getClass().getSimpleName()+ 无法满足请求,转入下一个处理者”); this . successor .handleRequest(request); class XiZh
35、uRe nexte nds Han dler Override public void handleRequest( int request) / TODOAuto-ge nerated method stub if (request=7) System. out .println( this .getClass().getSimpleName()+ 求+request); else if (this . successor != null ) System. out .println(this .getClass().getSimpleName()+ 无法满足请求,转入下一个处理者”); 处
36、理了请 自身 处理了请 自身 this . successor .handleRequest(request); class XueYuan extends Handler Override public void handleRequest( int request) / TODOAuto-generated method stub if (request=9) System. out .println( this .getClass().getSimpleName()+ 求 +request); else if ( this . successor != null ) System. ou
37、t .println( this .getClass().getSimpleName()+ 无法满足请求,转入下一个处理者 ); this . successor .handleRequest(request); class XueXiao extends Handler Override public void handleRequest( int request) / TODOAuto-generated method stub if (request=15) System. out .println( this .getClass().getSimpleName()+ 求 +reques
38、t); else System. out .println( 该生请假时间太长,不能批准 ); 【运行截图】 FuDaoYuan 处理了请求 1 FuDaoYuan 自身无法满足请求,转入下一个处理者 XiZhuRen 处理了请求 3 FuDaoYuan 自身无法满足请求,转入下一个处理者 XiZhuRen 处理了请求 5 处理了请 自身 处理了请 FuDaoYuan 自身无法满足请求,转入下一个处理者 XiZhuRen 处理了请求 7 FuDaoYuan 自身无法满足请求,转入下一个处理者 XiZhuRen 自身无法满足请求,转入下一个处理者 XueYuan 处理了请求 9 FuDaoYua
39、n 自身无法满足请求,转入下一个处理者 XiZhuRen 自身无法满足请求,转入下一个处理者 XueYuan 自身无法满足请求,转入下一个处理者 XueXiao 处理了请求 11 FuDaoYuan 自身无法满足请求,转入下一个处理者 XiZhuRen 自身无法满足请求,转入下一个处理者 XueYuan 自身无法满足请求,转入下一个处理者 XueXiao 处理了请求 13 FuDaoYuan 自身无法满足请求,转入下一个处理者 XiZhuRen 自身无法满足请求,转入下一个处理者 XueYuan 自身无法满足请求,转入下一个处理者 XueXiao 处理了请求 15 FuDaoYuan 自身无法
40、满足请求,转入下一个处理者 XiZhuRen 自身无法满足请求,转入下一个处理者 XueYuan 自身无法满足请求,转入下一个处理者 该生请假时间太长,不能批准 FuDaoYuan 自身无法满足请求,转入下一个处理者 XiZhuRen 自身无法满足请求,转入下一个处理者 XueYuan 自身无法满足请求,转入下一个处理者 该生请假时间太长,不能批准 【实验小结】 职责链模式主要适用于以下情况: 当有多个对象可以处理同一个请求, 而具体哪个对象来处理这个请求在运行 时刻需要自动判定时。 当需要在不明确接受者的情况下向多个对象中的某一个提交请求时。 当处理一个请求的对象集合应该动态地被确定时。 实
41、验九访问者模式的应用 【实验目的】 1) 掌握访问者模式(Visitor)的特点 2) 分析具体问题,使用访问者模式进行设计。 【实验内容和要求】 超市中有两类商品,苹果(Apple)和巧克力(Chocolate),顾客(Custom)将所选 商品放在购物车中(Shopping Cart),然后到收银员(Cashier)处付款。在购物过程 中,顾客需要对这些商品进行访问,以便确认这些商品的质量,之后收银员也需 要访问购物车内的商品,以便计算价格。应用访问者模式,用C#控制台应用程 序实现该设计。绘制该模式的 UML图。 【模式UM图】 【模式代码】 import java.util.Array
42、List; import java.util.List; public class ShoppingTest * param args */ public static void main(String args) / TODO Auto-generated method stub ShoppingCart sc=new ShoppingCart(); sc.Attach(new Apple(Apple); sc.Attach(new Chocolate(Chocolate); PersonVisitor pv=new Customer(); sc.accept(pv); PersonVisi
43、tor ps=new Cashier(); sc.accept(ps); abstract class PersonVisitor public abstract void visitorApple(Apple apple); public abstract void visitorChocolate(Chocolate chocolate); class Customer extends PersonVisitor Override public void visitorApple(Apple apple) 选购 选购 / TODO Auto-generated method stub Sy
44、stem.out.println(this.getClass().getSimpleName()+ +apple.getName(); Override public void visitorChocolate(Chocolate chocolate) / TODO Auto-generated method stub System.out.println(this.getClass().getSimpleName()+ +chocolate.getName(); class Cashier extends PersonVisitor Override public void visitorA
45、pple(Apple apple) / TODO Auto-generated method stub System.out.println(this.getClass().getSimpleName()+ +apple.getName()+收 银); Override public void visitorChocolate(Chocolate chocolate) / TODO Auto-generated method stub System.out.println(this.getClass().getSimpleName()+ +chocolate.getName()+收银 ); a
46、bstract class Shop protected String name; public Shop(String name) =name; public abstract void accpet(PersonVisitor pv); public String getName() return name; class Apple extends Shop public Apple(String name) super(name); / TODO Auto-generated constructor stub Override public void accpet(Pe
47、rsonVisitor pv) / TODO Auto-generated method stub pv.visitorApple(this); class Chocolate extends Shop public Chocolate(Stri ng n ame) super( name); / TODO Auto-ge nerated con structor stub Override public void accpet(Pers onV isitor pv) / TODO Auto-ge nerated method stub pv.visitorChocolate(this); c
48、lass Shopp in gCart List shops=new ArrayList(); public void Attach(Shop shop) shops.add(shop); public void Detach(Shop shop) shops.remove(shop); public void accept(Pers onV isitor visitor) for (i nt i = 0; i shops.size(); i+) shops.get(i).accpet(visitor); 【运行截图】 CustomeT 选购 Apple Customer 选购 Chocola
49、te Cashier对Apple收奄艮 Cashier 对 Chocolate 收银 【实验小结】 访问者模式主要有以下几种适用情况: 当一个对象结构包含有很多类对象,但是他们又不同的接口,并且开发人员 希望对这些对象实施一些依赖于具体类的操作时。 当需要对一个对象结构中的对象进行很多不同的并且不相关的操作时。 当该对象结构被很多应用共享时。 实验十备忘录模式的应用 【实验目的】 1)掌握备忘录模式(Memento)的特点 2)分析具体问题,使用备忘录模式进行设计。 【实验内容和要求】 Window系统可能会异常终止,设计一个系统备份程序。类WindowsSystem 是发起人角色(Orign
50、ation),类Memento是备忘录角色(Memento),类User是备 忘录管理角色(Caretaker),应用备忘录模式,用C#控制台应用程序实现该设计。 绘制该模式的UML图。 【模式UM图】 【模式代码】 public class Win dowsMeme nto public static void main( Stri ng args) / TODCAuto-ge nerated method stub Win dowsSystem ws= new Win dowsSystem(); ws.setState( 开机正常工作”); ws.show(); User u= new U
51、ser(); u.setMeme ntoWi ndows(ws.createMeme ntoWi ndows(); ws.setState( 系统崩了啊! ”); ws.show(); System. out .println(” 对系统进行恢复 10s); ws.setMeme ntoWi ndows(u.getMeme ntoWi ndows(); ws.show(); /备忘录类 class Meme ntoWi ndows private String state ; public Meme ntoWi ndows(Stri ng state) this . state =state;
52、 /获取状态 public Stri ng getState() return state ; class Win dowsSystem private String state ; /建立状态存储对象 public Meme ntoWi ndows createMeme ntoWi ndows() return new MementoWindows( state ); /设置状态存储对象 public void setMementoWindows(MementoWindows mementoWindows) state =meme ntoWi ndows.getState(); /展现状态
53、public void show() System. out .println(” 状态为:+state ); /获取状态 public Stri ng getState() return state ; /设置状态 public void setState(String state) this . state =state; class User private MementoWindows mementoWindows ; /设定备忘 public void setMementoWindows(MementoWindows mementoWindows) this . mementoWin
54、dows =mementoWindows; /获取备忘 public Meme ntoWi ndows getMeme ntoWi ndows() return mementoWindows ; 【运行截图】 状态为*开机正常工作 状态为;系统崩了啊! 对系统进行恢复10s 状态为:开机正常工作 【实验小结】 备忘录模式有以下几种适用情况: 当必须保存一个对象在某一时刻的全部或部分状态以便在需要时可以将其 回复到先前的状态时。 当使用接口让其他对象直接得到自己的状态会暴露对象的实现细节、继而破 坏其封装性。 假若有人问,你的一生有多长?请告诉他,只有三天,昨天,今天和明天。在这三天的生命里,昨天我们已经浪费掉了,明天不一定属于你,那你的时间就只有今天,所以不珍惜今天的 这就像我们身处喧嚣的闹市,却在渴望山清水秀的僻静之地。心若静,何处都是水云间,都是世外桃源,都是僻静之所,心若浮躁,不管你居所何处,都难宁静。 其实,很多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北师大版道德与法治八年级下册第2课磨砺坚强意志听课评课记录
- 鲁教版数学八年级上册4.4《图形变化的简单应用》听评课记录
- 中图版地理八年级下册《第一节 日本》听课评课记录2
- 人教部编版八年级道德与法治上册:2.1《网络改变世界》听课评课记录
- 湘教版数学八年级上册1.5《分式方程的应用》听评课记录
- 湘教版地理八年级下册:8.3 《新疆维吾尔自治区的地理概况与区域开发》 听课评课记录2
- 《东汉的兴亡》听课评课记录1(新部编人教版七年级上册历史)
- 四年级口算天天练
- 火锅菜品培训
- 护理管理的基本理论
- 2025年大庆职业学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2025年中国南方航空股份有限公司招聘笔试参考题库含答案解析
- 商务部发布《中国再生资源回收行业发展报告(2024)》
- 山东省济南市2024-2024学年高三上学期1月期末考试 地理 含答案
- 2025年福建新华发行(集团)限责任公司校园招聘高频重点提升(共500题)附带答案详解
- 【课件】液体的压强(课件)-2024-2025学年人教版物理八年级下册
- 实施弹性退休制度暂行办法解读课件
- 冷冻食品配送售后服务体系方案
- 江苏省驾校考试科目一考试题库
- 四川省成都市青羊区成都市石室联合中学2023-2024学年七上期末数学试题(解析版)
- 2024-2030年中国自动光学检测仪(AOI)市场竞争格局与前景发展策略分析报告
评论
0/150
提交评论