首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

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

后端 51.64KB 23 需要积分: 1
立即下载

资源介绍:

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 getChild(){ /** * 缺省实现,抛出异常,因为叶子对象没有此功能 * 或者子组件没有实现这个功能 */ throw new UnsupportedOperationException("对象不支持此功能"); } } class Composite1 extends Component1 { // 用来存储组合对象中包含的子组件对象 private List childComponents = new ArrayList(); // 输出对象名称 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 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); } }

资源文件列表:

Java描述设计模式(24):备忘录模式.zip 大约有72个文件
  1. pom.xml 4.92KB
  2. src/main/java/com/model/design/base/node01/singleton/C01_Singleton.java 871B
  3. src/main/java/com/model/design/base/node01/singleton/C02_Singleton.java 928B
  4. src/main/java/com/model/design/base/node01/singleton/C03_Singleton.java 787B
  5. src/main/java/com/model/design/base/node01/singleton/C04_Singleton.java 1.31KB
  6. src/main/java/com/model/design/base/node01/singleton/C05_Singleton.java 838B
  7. src/main/java/com/model/design/base/node01/singleton/C06_Singleton.java 543B
  8. src/main/java/com/model/design/base/node01/singleton/C07_Singleton.java 430B
  9. src/main/java/com/model/design/base/node02/factory/C01_InScene.java 1.5KB
  10. src/main/java/com/model/design/base/node02/factory/C02_SimpleFactory.java 1.58KB
  11. src/main/java/com/model/design/base/node03/factoryMethod/C01_FactoryMethod.java 3.41KB
  12. src/main/java/com/model/design/base/node04/abstractFactory/C01_AbstractFactory.java 3KB
  13. src/main/java/com/model/design/base/node05/property/C01_Property.java 1.59KB
  14. src/main/java/com/model/design/base/node05/property/C02_DeepClone.java 1.69KB
  15. src/main/java/com/model/design/base/node06/builder/C01_InScene.java 2.42KB
  16. src/main/java/com/model/design/base/node06/builder/C02_Builder.java 1.69KB
  17. src/main/java/com/model/design/base/node07/adapter/C01_InScene.java 707B
  18. src/main/java/com/model/design/base/node07/adapter/C02_AdapterClass.java 476B
  19. src/main/java/com/model/design/base/node07/adapter/C03_AdapterObject.java 662B
  20. src/main/java/com/model/design/base/node07/adapter/C04_AdapterInte.java 801B
  21. src/main/java/com/model/design/base/node08/bridge/C01_InScene.java 2.14KB
  22. src/main/java/com/model/design/base/node08/bridge/C02_Bridge.java 1.08KB
  23. src/main/java/com/model/design/base/node09/decorator/C01_InScene.java 1.56KB
  24. src/main/java/com/model/design/base/node09/decorator/C02_Decorator.java 1.27KB
  25. src/main/java/com/model/design/base/node10/composite/C01_InScene.java 1.06KB
  26. src/main/java/com/model/design/base/node10/composite/C02_Security_Model.java 2.96KB
  27. src/main/java/com/model/design/base/node10/composite/C03_Transparent_Model.java 3.73KB
  28. src/main/java/com/model/design/base/node11/observer/C01_Observer_Push.java 2.43KB
  29. src/main/java/com/model/design/base/node11/observer/C02_Observer_Pull.java 2.81KB
  30. src/main/java/com/model/design/base/node11/observer/C03_Observer_JDK.java 1.05KB
  31. src/main/java/com/model/design/base/node12/facade/C01_InScene.java 1.39KB
  32. src/main/java/com/model/design/base/node12/facade/C02_Facade.java 971B
  33. src/main/java/com/model/design/base/node13/iterator/C01_Iterator.java 1.89KB
  34. src/main/java/com/model/design/base/node13/iterator/C02_ArrayList.java 484B
  35. src/main/java/com/model/design/base/node14/interpreter/C01_InScene.java 2.29KB
  36. src/main/java/com/model/design/base/node15/chain/C01_InScene.java 2.41KB
  37. src/main/java/com/model/design/base/node15/chain/C02_Chain.java 1.25KB
  38. src/main/java/com/model/design/base/node16/proxy/C01_InScene.java 1.39KB
  39. src/main/java/com/model/design/base/node16/proxy/C02_Proxy.java 808B
  40. src/main/java/com/model/design/base/node16/proxy/C03_JdkProxy.java 1.92KB
  41. src/main/java/com/model/design/base/node17/mediator/C01_InScene.java 1.76KB
  42. src/main/java/com/model/design/base/node17/mediator/C02_Mediator.java 1.4KB
  43. src/main/java/com/model/design/base/node18/flyweight/C01_InScene.java 267B
  44. src/main/java/com/model/design/base/node18/flyweight/C02_FlyWeight.java 1.54KB
  45. src/main/java/com/model/design/base/node18/flyweight/C03_Integer.java 556B
  46. src/main/java/com/model/design/base/node19/template/C01_InScene.java 1.04KB
  47. src/main/java/com/model/design/base/node19/template/C02_Template.java 843B
  48. src/main/java/com/model/design/base/node20/command/C01_InScene.java 1.15KB
  49. src/main/java/com/model/design/base/node20/command/C02_Command.java 1.22KB
  50. src/main/java/com/model/design/base/node21/state/C01_InScene.java 1.95KB
  51. src/main/java/com/model/design/base/node21/state/C02_State.java 1.06KB
  52. src/main/java/com/model/design/base/node22/strategy/C01_InScene.java 1.43KB
  53. src/main/java/com/model/design/base/node22/strategy/C02_Strategy.java 1.06KB
  54. src/main/java/com/model/design/base/node23/visitor/C01_InScene.java 1.93KB
  55. src/main/java/com/model/design/base/node23/visitor/C02_Visitor.java 1.93KB
  56. src/main/java/com/model/design/base/node24/memento/C01_InScene.java 2.7KB
  57. src/main/java/com/model/design/base/node24/memento/C02_Memento.java 1.58KB
  58. src/main/java/com/model/design/spring/node01/singleton/SpringTest.java 1.01KB
  59. src/main/java/com/model/design/spring/node01/singleton/UserBean.java 259B
  60. src/main/java/com/model/design/spring/node03/factoryMethod/CarEntity.java 974B
  61. src/main/java/com/model/design/spring/node03/factoryMethod/CarFactory.java 124B
  62. src/main/java/com/model/design/spring/node03/factoryMethod/ProductCar.java 517B
  63. src/main/java/com/model/design/spring/node03/factoryMethod/SpringTest.java 632B
  64. src/main/java/com/model/design/spring/node04/abstractFactory/CarBean.java 236B
  65. src/main/java/com/model/design/spring/node04/abstractFactory/SpringTest.java 1.14KB
  66. src/main/java/com/model/design/spring/node05/property/Sheep.java 577B
  67. src/main/java/com/model/design/spring/node05/property/SpringTest.java 841B
  68. src/main/java/com/model/design/spring/node14/interpreter/SpringTest.java 499B
  69. src/main/resources/spring/spring-abstract-factory.xml 1.72KB
  70. src/main/resources/spring/spring-factorymethod.xml 1.8KB
  71. src/main/resources/spring/spring-property.xml 1.66KB
  72. src/main/resources/spring/spring-singleton.xml 1.52KB
0评论
提交 加载更多评论
其他资源 jdk中文字体文件,用于linux
jdk中文字体文件,用于linux
QT实现自定义侧边导航栏
侧边导航栏是应用程序界面的一种常见布局,它通常位于页面或应用程序的侧边位置,用来展示导航菜单或功能链接,方便用户快速访问不同的页面或功能。本示例展示了在QT中,通过自定义QWidget来实现自定义的侧边导航栏。你可以根据需要修改样式、添加图标等来达到你想要的效果。
11111111111111111111
11111
中国生态功能保护区shp数据
中国生态功能保护区shp数据
RTT 3.1.5以及MSPM0截至到2024.08.14最新pack
RTT 3.1.5以及MSPM0截至到2024.08.14最新pack
ST1633I-沁恒微CH554-IC代码
ST1633I-沁恒微CH554-IC代码
异次元发卡网,需要支付接口
发卡系统是一款专为在线销售数字产品如游戏点卡、会员激活码等设计的个人发卡平台。这个系统的核心功能是为商家提供一个便捷的渠道,将各种虚拟商品的密钥以卡片形式在线出售,买家可以快速购买并获取密钥。全开源且无加密的特性使得该系统具有高度的可定制性和安全性,用户可以根据自己的需求进行二次开发和调整。 我们需要了解发卡网的基本工作原理。发卡网通常包含以下几个主要模块: 1. 商品管理:商家可以上传和管理不同的商品,包括商品名称、价格、库存以及对应的密钥信息。在发卡系统中,这一功能可能通过后台界面实现,允许商家方便地添加、编辑和删除商品。 2. 订单处理:当买家完成支付后,系统会自动或手动分配一个密钥给买家,同时扣除相应的库存。这个过程需要与支付接口紧密配合,确保交易的安全和准确。 3. 用户账户:系统应具备用户注册、登录功能,以便买家保存订单历史和查看已购买的商品。此外,商家也需要账户来管理商品和订单。 4. 数据统计:为了帮助商家分析销售情况,系统需要提供订单统计、销售额统计等功能,以便商家进行市场决策。 5. 接口对接:发卡系统强调了“欢迎来对接”,这意味着它可能支持
STC8A8K64S4A12单片机最小系统原理图+PCB
STC8A8K64S4A12单片机最小系统原理图+PCB源文件