当前位置: 首页 > news >正文

点创网站建设成都的装修公司有哪些

点创网站建设,成都的装修公司有哪些,wordpress加入广告,wordpress如何cdn加速一、什么是组合模式 组合#xff08;Composite Pattern#xff09;模式的定义#xff1a;有时又叫作整体-部分#xff08;Part-Whole#xff09;模式#xff0c;它是一种将对象组合成树状的层次结构的模式#xff0c;用来表示“整体-部分”的关系#xff0c;使用户对单…一、什么是组合模式 组合Composite Pattern模式的定义有时又叫作整体-部分Part-Whole模式它是一种将对象组合成树状的层次结构的模式用来表示“整体-部分”的关系使用户对单个对象和组合对象具有一致的访问性。 组合模式包含以下主要角色包含以下主要角色 树叶抽象构件Component角色它的主要作用是为树叶构件声明公共接口并实现它们的默认行为。树枝抽象构件BranchComponent角色它的主要作用是为树枝构件声明公共接口并实现它们的默认行为扩展了树叶抽象角色。树叶构件Leaf角色是组合中的叶节点对象它没有子节点用于实现抽象构件角色中 声明的公共接口。树枝构件Composite角色是组合中的分支节点对象它有子节点。它实现了抽象构件角色中声明的接口它的主要作用是存储和管理子部件通常包含 Add()、Remove()、GetChild() 等方法。 二、享元模式的实现 组合模式一般用来描述整体与部分的关系它将对象组织到树形结构中顶层的节点被称为根节点根节点下面可以包含树枝节点和叶子节点树枝节点下面又可以包含树枝节点和叶子节点。 树叶抽象构件Component /** * author FluffyCatkin * version 1.0 * date 2020/1/6 0006 15:56 * description 抽象构件Component角色它的主要作用是为树叶构件声明公共接口并实现它们的默认行为。 */ FunctionalInterface public interface Component {void operation(); } 树叶构件Leaf /*** author FluffyCatkin* version 1.0* date 2020/1/6 0006 16:01* description 树叶构件Leaf角色是组合中的叶节点对象它没有子节点用于实现抽象构件角色中 声明的公共接口。*/ public class Leaf implements Component {private String leafName;public Leaf(String leafName) {this.leafName leafName;}Overridepublic void operation() {System.out.println(叶子节点leafName被调用);}} 树枝抽象构件BranchComponent /*** author FluffyCatkin* version 1.0* date 2020/1/6 0006 15:56* description 树枝抽象构件BranchComponent角色它的主要作用是为树枝构件声明公共接口并实现它们的默认行为扩展了树叶抽象角色。*/ public interface BranchComponent extends Component{/*** 新增叶子* param component 叶子*/void add(Component component);/*** 移除叶子* param component 叶子*/void remove(Component component);/*** 查找叶子* param index 叶子下标* return 叶子*/Component getChild(int index); } 树枝构件Composite /*** author FluffyCatkin* version 1.0* date 2020/1/6 0006 16:01* description 树枝构件Composite角色是组合中的分支节点对象它有子节点。它实现了抽象构件角色中声明的接口它的主要作用是存储和管理子部件通常包含 Add()、Remove()、GetChild() 等方法*/ public class Composite implements BranchComponent {private ListComponent children new ArrayList();private String compositeName ;public Composite(String compositeName) {this.compositeName compositeName;}Overridepublic void operation() {System.out.println(树枝compositeName被调用);children.parallelStream().forEach(Component::operation);}/*** 新增叶子* param component 叶子*/Overridepublic void add(Component component){children.add(component);}/*** 移除叶子* param component 叶子*/Overridepublic void remove(Component component){children.remove(component);}/*** 查找叶子* param index 叶子下标* return 叶子*/Overridepublic Component getChild(int index){return children.get(index);} } 测试类 /*** author FluffyCatkin* version 1.0* date 2020/1/6 0006 15:53* description 组合模式** 在现实生活中存在很多“部分-整体”的关系例如大学中的部门与学院、总公司中的部门与分公司、学习用品中的书与书包、生活用品中的衣月艮与衣柜以及厨房中的锅碗瓢盆等。在软件开发中也是这样例如文件系统中的文件与文件夹、窗体程序中的简单控件与容器控件等。对这些简单对象与复合对象的处理如果用组合模式来实现会很方便。* 组合模式的定义与特点:* 组合Composite模式的定义有时又叫作部分-整体模式它是一种将对象组合成树状的层次结构的模式用来表示“部分-整体”的关系使用户对单个对象和组合对象具有一致的访问性。* 组合模式的主要优点有组合模式使得客户端代码可以一致地处理单个对象和组合对象无须关心自己处理的是单个对象还是组合对象这简化了客户端代码* 更容易在组合体内加入新的对象客户端不会因为加入了新的对象而更改源代码满足“开闭原则”** 其主要缺点是设计较复杂客户端需要花更多时间理清类之间的层次关系* 不容易限制容器中的构件* 不容易用继承的方法来增加构件的新功能* 模式的结构* 组合模式包含以下主要角色。* 树叶抽象构件Component角色它的主要作用是为树叶构件声明公共接口并实现它们的默认行为。* 树枝抽象构件Component角色它的主要作用是为树枝构件声明公共接口并实现它们的默认行为扩展了树叶抽象角色。* 树叶构件Leaf角色是组合中的叶节点对象它没有子节点用于实现抽象构件角色中 声明的公共接口。* 树枝构件Composite角色是组合中的分支节点对象它有子节点。它实现了抽象构件角色中声明的接口它的主要作用是存储和管理子部件通常包含 Add()、Remove()、GetChild() 等方法。** 组合模式的应用场景:* 前面分析了组合模式的结构与特点下面分析它适用的以下应用场景。在需要表示一个对象整体与部分的层次结构的场合。* 要求对用户隐藏组合对象与单个对象的不同用户可以用统一的接口使用组合结构中的所有对象的场合。**/ public class Main {/*** 测试组合模式*/Testpublic void compositeTest(){//组装树形结构Composite composite1 new Composite(树枝1);Composite composite2 new Composite(树枝2);Leaf leaf1 new Leaf(叶子1);Leaf leaf2 new Leaf(叶子2);Leaf leaf3 new Leaf(叶子3);composite1.add(leaf1);composite1.add(composite2);composite2.add(leaf2);composite2.add(leaf3);//遍历composite1.operation();} } 执行结果: 树枝树枝1被调用 树枝树枝2被调用 叶子节点叶子3被调用 叶子节点叶子2被调用 叶子节点叶子1被调用Process finished with exit code 0三、应用场景 它适用的以下应用场景: 在需要表示一个对象整体与部分的层次结构的场合。要求对用户隐藏组合对象与单个对象的不同用户可以用统一的接口使用组合结构中的所有对象的场合。 四、优缺点分析 组合模式的主要优点有 组合模式使得客户端代码可以一致地处理单个对象和组合对象无须关心自己处理的是单个对象还是组合对象这简化了客户端代码更容易在组合体内加入新的对象客户端不会因为加入了新的对象而更改源代码满足“开闭原则” 其主要缺点是 设计较复杂客户端需要花更多时间理清类之间的层次关系不容易限制容器中的构件不容易用继承的方法来增加构件的新功能 代码地址https://gitee.com/fluffycatkin/JavaDesignModel.git 原文出处http://c.biancheng.net/view/1373.html
http://www.sadfv.cn/news/155590/

相关文章:

  • 免费建站网站建设手机网站建立教程
  • 行远金华网站建设公司原神网页设计作业
  • 健身网站开发方式遵义网站搭建公司哪家好
  • 宝山网站建设 网站外包网站建设困难
  • 网站站外推广方式有哪些个人工作室项目
  • 网站开发用什么语言开发的wordpress分类目录添加报错_标签不能添加
  • 建设银行网站酒店网站如何做
  • 枣庄建设工程管理局网站wordpress导航功能
  • 专门做行业分析的网站北京网上注册公司流程
  • 站内seo怎么做标志设计论文
  • 网站建设佰首选金手指二七负责公司网站产品的开发及整理
  • 个人网站域名怎么起网站备案后更换主机
  • 如何自己做解析网站php网站开发实例电子版
  • 龙华网站 建设信科网络微信公众平台开发源代码
  • 山东省建设职业教育集团网站怎么制作属于自己的app
  • 用凡科做的手机网站版wordpress 仪表盘美化
  • 网页与网站的区别是什么手机网站开发session
  • Dw怎么做网站往里面加标题和字网站建设常见故障
  • 西南交通建设集团网站如何自己注册域名
  • 定制网站多少钱网站搭建关键词排名
  • 制作网站品牌公司哪家好如何开发手机网站
  • 增城网站建设服务网站开发设计制作合同
  • 心理咨询类微网站怎么做网络推广文章的方法
  • 建设开源社区网站什么意思设计一个外贸网站需要多少钱
  • 苏州商城网站建设网站keywords标签怎么写
  • 公司门户网站项目模版龙游县建设局网站
  • 有关网站开发的论文什么网站做h5没有广告
  • 站长工具流量统计影楼网站服务
  • 在哪里推广网站wordpress无法打开备份
  • 做网站看百度脸色夏津网站建设价格