下载资源后端资源详情
Java描述设计模式(24):备忘录模式.zip
大小:51.64KB
价格:21积分
下载量:0
评分:
5.0
上传者:2301_78772942
更新日期:2024-08-14

Java描述设计模式(24):备忘录模式.zip

资源文件列表(大概)

文件名
大小
pom.xml
4.92KB
src/main/java/com/model/design/base/node01/singleton/C01_Singleton.java
871B
src/main/java/com/model/design/base/node01/singleton/C02_Singleton.java
928B
src/main/java/com/model/design/base/node01/singleton/C03_Singleton.java
787B
src/main/java/com/model/design/base/node01/singleton/C04_Singleton.java
1.31KB
src/main/java/com/model/design/base/node01/singleton/C05_Singleton.java
838B
src/main/java/com/model/design/base/node01/singleton/C06_Singleton.java
543B
src/main/java/com/model/design/base/node01/singleton/C07_Singleton.java
430B
src/main/java/com/model/design/base/node02/factory/C01_InScene.java
1.5KB
src/main/java/com/model/design/base/node02/factory/C02_SimpleFactory.java
1.58KB
src/main/java/com/model/design/base/node03/factoryMethod/C01_FactoryMethod.java
3.41KB
src/main/java/com/model/design/base/node04/abstractFactory/C01_AbstractFactory.java
3KB
src/main/java/com/model/design/base/node05/property/C01_Property.java
1.59KB
src/main/java/com/model/design/base/node05/property/C02_DeepClone.java
1.69KB
src/main/java/com/model/design/base/node06/builder/C01_InScene.java
2.42KB
src/main/java/com/model/design/base/node06/builder/C02_Builder.java
1.69KB
src/main/java/com/model/design/base/node07/adapter/C01_InScene.java
707B
src/main/java/com/model/design/base/node07/adapter/C02_AdapterClass.java
476B
src/main/java/com/model/design/base/node07/adapter/C03_AdapterObject.java
662B
src/main/java/com/model/design/base/node07/adapter/C04_AdapterInte.java
801B
src/main/java/com/model/design/base/node08/bridge/C01_InScene.java
2.14KB
src/main/java/com/model/design/base/node08/bridge/C02_Bridge.java
1.08KB
src/main/java/com/model/design/base/node09/decorator/C01_InScene.java
1.56KB
src/main/java/com/model/design/base/node09/decorator/C02_Decorator.java
1.27KB
src/main/java/com/model/design/base/node10/composite/C01_InScene.java
1.06KB
src/main/java/com/model/design/base/node10/composite/C02_Security_Model.java
2.96KB
src/main/java/com/model/design/base/node10/composite/C03_Transparent_Model.java
3.73KB
src/main/java/com/model/design/base/node11/observer/C01_Observer_Push.java
2.43KB
src/main/java/com/model/design/base/node11/observer/C02_Observer_Pull.java
2.81KB
src/main/java/com/model/design/base/node11/observer/C03_Observer_JDK.java
1.05KB
src/main/java/com/model/design/base/node12/facade/C01_InScene.java
1.39KB
src/main/java/com/model/design/base/node12/facade/C02_Facade.java
971B
src/main/java/com/model/design/base/node13/iterator/C01_Iterator.java
1.89KB
src/main/java/com/model/design/base/node13/iterator/C02_ArrayList.java
484B
src/main/java/com/model/design/base/node14/interpreter/C01_InScene.java
2.29KB
src/main/java/com/model/design/base/node15/chain/C01_InScene.java
2.41KB
src/main/java/com/model/design/base/node15/chain/C02_Chain.java
1.25KB
src/main/java/com/model/design/base/node16/proxy/C01_InScene.java
1.39KB
src/main/java/com/model/design/base/node16/proxy/C02_Proxy.java
808B
src/main/java/com/model/design/base/node16/proxy/C03_JdkProxy.java
1.92KB
src/main/java/com/model/design/base/node17/mediator/C01_InScene.java
1.76KB
src/main/java/com/model/design/base/node17/mediator/C02_Mediator.java
1.4KB
src/main/java/com/model/design/base/node18/flyweight/C01_InScene.java
267B
src/main/java/com/model/design/base/node18/flyweight/C02_FlyWeight.java
1.54KB
src/main/java/com/model/design/base/node18/flyweight/C03_Integer.java
556B
src/main/java/com/model/design/base/node19/template/C01_InScene.java
1.04KB
src/main/java/com/model/design/base/node19/template/C02_Template.java
843B
src/main/java/com/model/design/base/node20/command/C01_InScene.java
1.15KB
src/main/java/com/model/design/base/node20/command/C02_Command.java
1.22KB
src/main/java/com/model/design/base/node21/state/C01_InScene.java
1.95KB
src/main/java/com/model/design/base/node21/state/C02_State.java
1.06KB
src/main/java/com/model/design/base/node22/strategy/C01_InScene.java
1.43KB
src/main/java/com/model/design/base/node22/strategy/C02_Strategy.java
1.06KB
src/main/java/com/model/design/base/node23/visitor/C01_InScene.java
1.93KB
src/main/java/com/model/design/base/node23/visitor/C02_Visitor.java
1.93KB
src/main/java/com/model/design/base/node24/memento/C01_InScene.java
2.7KB
src/main/java/com/model/design/base/node24/memento/C02_Memento.java
1.58KB
src/main/java/com/model/design/spring/node01/singleton/SpringTest.java
1.01KB
src/main/java/com/model/design/spring/node01/singleton/UserBean.java
259B
src/main/java/com/model/design/spring/node03/factoryMethod/CarEntity.java
974B
src/main/java/com/model/design/spring/node03/factoryMethod/CarFactory.java
124B
src/main/java/com/model/design/spring/node03/factoryMethod/ProductCar.java
517B
src/main/java/com/model/design/spring/node03/factoryMethod/SpringTest.java
632B
src/main/java/com/model/design/spring/node04/abstractFactory/CarBean.java
236B
src/main/java/com/model/design/spring/node04/abstractFactory/SpringTest.java
1.14KB
src/main/java/com/model/design/spring/node05/property/Sheep.java
577B
src/main/java/com/model/design/spring/node05/property/SpringTest.java
841B
src/main/java/com/model/design/spring/node14/interpreter/SpringTest.java
499B
src/main/resources/spring/spring-abstract-factory.xml
1.72KB
src/main/resources/spring/spring-factorymethod.xml
1.8KB
src/main/resources/spring/spring-property.xml
1.66KB
src/main/resources/spring/spring-singleton.xml
1.52KB

资源内容介绍

Java描述设计模式(24):备忘录模式
package com.model.design.base.node10.composite;import java.util.ArrayList;import java.util.List;/** * 组合模式-透明式 */public class C03_Transparent_Model { public static void main(String[] args) { Component1 root = new Composite1("服装"); Component1 c1 = new Composite1("男装"); Component1 c2 = new Composite1("女装"); Component1 leaf1 = new Leaf1("衬衫"); Component1 leaf2 = new Leaf1("夹克"); Component1 leaf3 = new Leaf1("裙子"); Component1 leaf4 = new Leaf1("套装"); root.addChild(c1); root.addChild(c2); c1.addChild(leaf1); c1.addChild(leaf2); c2.addChild(leaf3); c2.addChild(leaf4); root.printStruct(""); }}abstract class Component1 { /** * 输出组件自身的名称 */ public abstract void printStruct(String preStr); // 聚集管理方法,增加一个子构件对象 public void addChild(Component1 child){ /** * 缺省实现,抛出异常,因为叶子对象没有此功能 * 或者子组件没有实现这个功能 */ throw new UnsupportedOperationException("对象不支持此功能"); } // 聚集管理方法,删除一个子构件对象 public void removeChild(int index){ /** * 缺省实现,抛出异常,因为叶子对象没有此功能 * 或者子组件没有实现这个功能 */ throw new UnsupportedOperationException("对象不支持此功能"); } // 聚集管理方法,返回所有子构件对象 public List<Component1> getChild(){ /** * 缺省实现,抛出异常,因为叶子对象没有此功能 * 或者子组件没有实现这个功能 */ throw new UnsupportedOperationException("对象不支持此功能"); }}class Composite1 extends Component1 { // 用来存储组合对象中包含的子组件对象 private List<Component1> childComponents = new ArrayList<Component1>(); // 输出对象名称 private String name ; public Composite1 (String name){ this.name = name; } /** * 聚集管理方法,增加一个子构件对象 * @param child 子构件对象 */ public void addChild(Component1 child){ childComponents.add(child); } /** * 聚集管理方法,删除一个子构件对象 * @param index 子构件对象的下标 */ public void removeChild(int index){ childComponents.remove(index); } // 聚集管理方法,返回所有子构件对象 public List<Component1> getChild(){ return childComponents ; } /** * 输出对象的自身结构 * @param preStr 前缀,主要是按照层级拼接空格,实现向后缩进 */ @Override public void printStruct(String preStr) { // 首先输出自己名称 System.out.println(preStr+"+"+this.name); // 如果还包含有子组件,那么就输出这些子组件对象 preStr = preStr + " "; if (this.childComponents != null) { // 添加两个空格,表示向后缩进 for (Component1 c : childComponents) { ////递归输出每个子对象 c.printStruct(preStr); } } }}class Leaf1 extends Component1 { private String name; public Leaf1 (String name){ this.name = name; } /** * 输出叶子对象的结构,叶子对象没有子对象,也就是输出叶子对象的名字 * @param preStr 前缀,主要是按照层级拼接的空格,实现向后缩进 */ @Override public void printStruct(String preStr) { System.out.println(preStr+"-"+name); }}

用户评论 (0)

发表评论

captcha