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

定制网站建设开发维护湘潭营销型网站建设

定制网站建设开发维护,湘潭营销型网站建设,怎样建设个自己的网站,最好的餐饮设计网站建设定义 将对象组合成树形结构以表示部分-整体’的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性(稳定)。 应用场景 在软件在某些情况下,客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现结构(而非抽象接口)的变化…

定义

将对象组合成树形结构以表示部分-整体’的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性(稳定)。

应用场景

  • 在软件在某些情况下,客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现结构(而非抽象接口)的变化将引起客户代码的频繁变化,带来了代码的维护性、扩展性等弊端。
  • 如何将“客户代码与复杂的对象容器结构”解耦?让对象容器自己来实现自身的复杂结构,从而使得客户代码就像处理简单对象-样来处理复杂的对象容器?

结构

在这里插入图片描述

代码示例

//Composite.h
/****************************************************/
#ifndef COMPOSITE_H
#define COMPOSITE_H
#include <iostream>
#include <list>using namespace std;// 抽象类-节点
class Node
{
public:// 构造函数explicit Node(string name) :m_name(name) {};// 析构函数virtual ~Node() {};// 添加virtual void add(Node *node) {};// 删除virtual void remove(Node *node) {};// 显示virtual void show(int space) {for (int i = 0; i < space; i++) {cout << "  ";}cout << m_name << endl;}protected:string m_name;                                       // 名字
};// 具体类-Word文件
class WordFile :public Node
{
public:// 构造函数explicit WordFile(string name) :Node(name) {};// 析构函数virtual ~WordFile() {};};// 具体类-文件夹
class Folder :public Node
{
public:// 构造函数explicit Folder(string name) :Node(name) {};// 析构函数virtual ~Folder() {nodeList.clear();}// 添加virtual void add(Node *node) {nodeList.emplace_back(node);}// 删除virtual void remove(Node *node) {nodeList.remove(node);}// 显示virtual void show(int space) {Node::show(space);space++;for (auto node : nodeList) {node->show(space);}}private:list<Node*> nodeList;                                // 节点列表
};#endif
//test.cpp
/****************************************************/
#include "Composite.h"int main()
{Node *f0 = new Folder("我的文件夹");// 文件夹1中放入Word2和Word3,并将文件夹1放入我的文件夹Node *f1 = new Folder("文件夹1");Node *w2 = new WordFile("Word2");Node *w3 = new WordFile("Word3");f1->add(w2);f1->add(w3);f0->add(f1);// 将Word1放入我的文件夹Node *w1 = new WordFile("Word1");f0->add(w1);// 显示我的文件夹中的内容f0->show(0);// 删除文件夹1中的Word2文件,再次显示我的文件夹中的内容f1->remove(w2);f0->show(0);// 删除指针并置空delete f0, f1, w1, w2, w3;f0 = nullptr;f1 = nullptr;w1 = nullptr;w2 = nullptr;w3 = nullptr;return 0;
}

运行结果
在这里插入图片描述

要点总结

  • Composite模式采用树形结构来实现普遍存在的对象容器,从而将“一对多”的关系转化为“一对一”的关系,使得客户代码可以一致地(复用)处理对象和对象容器,无需关心处理的是单个的对象,还是组合的对象容器。
  • 将“客户代码与复杂的对象容器结构”解耦是Composite的核心思想,解耦之后,客户代码将与纯粹的抽象接口一而非 对象容器的内部实现结构一发生依赖, 从而更能“应对变化”。
  • Composite模式在具体实现中,可以让父对象中的子对象反向追溯;如果父对象有频繁的遍历需求,可使用缓存技巧来改善效率。
http://www.ritt.cn/news/24469.html

相关文章:

  • 便宜的网站设计今天的头条新闻
  • 腾讯云做视频网站信息流广告接单平台
  • 俄罗斯最新消息杭州seook优屏网络
  • 付公司网站费用怎么做分录app推广多少钱一单
  • 怎样创建网站根目录经典seo伪原创
  • 外国优秀网站设计网络推广优化品牌公司
  • 专业网站开发公司地址怎么开设自己的网站
  • 广州哪里有做网站网络宣传推广方案
  • 青海微网站建设网络推广公司如何做
  • 滨海哪家专业做网站软文写作方法
  • 国家鼓励做网站的行业十大广告公司
  • 做网站建设小程序谷歌怎么投放广告
  • 对接标准做好门户网站建设怎么建设自己的网站
  • 莱芜网站建设设计外包百度权重高的发帖网站
  • 网店装修广州网站营销seo
  • 怎么做重庆时时彩网站代理seo运营工作内容
  • 做变性手术视频网站成人用品哪里进货好
  • 做网站北京公司百度ai开放平台
  • 做网站的目标是什么网站维护是什么意思
  • 网站建设中 敬请期待怎么解决交换友情链接的网站标准是什么
  • 西安建设工程中心交易网站长尾关键词挖掘工具
  • 做 ps pr 赚钱的 网站东莞网站推广及优化
  • 购物网站开店免费网站排名优化培训
  • 短视频软件seo入门教程
  • 免费网站优化今日头条新闻推荐
  • 外贸网站建设升上去湛江seo推广公司
  • 旅游网站开发的背景百度渠道开户哪里找
  • 贷款公司通过做网站来给予平台贷款万网官网域名查询
  • 邯郸公司网站建设短链接生成器
  • 网站开发的甘特图百度怎么投广告