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

设计师新手接单网站深圳市建筑有限公司

设计师新手接单网站,深圳市建筑有限公司,英文网站开发哪家好,自己服务器做网站主机组合模式定义 C组合模式(Composite Pattern)是一种结构型设计模式,他允许将对象组合成树形结构来表示“部分-整体”的层次结构;在组合模式中有两种基本类型的对象:叶子对象和组合对象,叶子对象时没有子对象…

组合模式定义

C++组合模式(Composite Pattern)是一种结构型设计模式,他允许将对象组合成树形结构来表示“部分-整体”的层次结构;在组合模式中有两种基本类型的对象:叶子对象和组合对象,叶子对象时没有子对象的,而组合对象则是拥有子对象的。叶子对象和组合对象都实现了相同的接口,以便可以用相同的方式处理他们。

简单的C++组合模式实例

#include <iostream>
#include<vector>//抽象基类,定义组合对象和叶子对象的公共接口,
class Component
{
public://纯虚函数,需要子类实现,virtual void operation() = 0;
};//叶子对象,无子对象,实现Component接口
class Leaf :public Component
{
public:void operation() override{std::cout << "Lead operation" << std::endl;}
};
//组合对象,拥有子对象,实现Component接口
class Composite :public Component
{
public://添加子对象到子对象列表中void add(Component* component){children.push_back(component);}void operation() override{std::cout << "Composite operation" << std::endl;for (auto child : children){child->operation();}}
private:std::vector<Component*>children; //子对象列表
};
int main()
{Leaf leaf;Composite composite;composite.add(&leaf);composite.add(&leaf);composite.add(&leaf);composite.operation();return 0;}

在这里插入图片描述

文件系统来演示组合模式

我们以一个文件系统为例,使用组合模式来表示文件系统中的目录文件的关系

#include <iostream>
#include<string>
#include<vector>//抽象基类,定义了组合对象和叶子对象的公共接口
class FileSystemComponent
{
public:virtual void showInfo() = 0;virtual ~FileSystemComponent() {};
};
//叶子对象:文件
class File :public FileSystemComponent
{
public:File(const std::string& name) :m_Name(name) {}void showInfo() override{std::cout << "File:" << m_Name << std::endl;}
private:std::string m_Name;
};//组合对象:目录
class Directory :public FileSystemComponent
{
public:Directory(const std::string& name) :m_Name(name) {}void add(FileSystemComponent* com){children.push_back(com);}void showInfo() override{std::cout << "Directory:" << m_Name << std::endl;for (auto& item : children){item->showInfo();}}private:std::string m_Name;std::vector<FileSystemComponent*> children;
};int main()
{Directory root("root"); //根节点Directory mnt("mnt");Directory tmp("tmp");root.add(&mnt);root.add(&tmp);File ext("ext");File nfs("nfs");mnt.add(&ext);tmp.add(&nfs);root.showInfo();return 0;}

在这里插入图片描述

http://www.yayakq.cn/news/974907/

相关文章:

  • 禹城做网站设计感超强的公司名字
  • 好的网站推荐下 感谢西部数码官网
  • 门户网站的建设公司郑州网站制作价格
  • 展示网站开发 大概多少钱织梦禁止网站右击
  • 高大上的企业网站欣赏企业网站变成app的方法
  • 苏州企业网站制作传奇网站模板psd
  • 顶尖网站设计公司泰安集团网站建设公司
  • 做网站软件dw电商网站开发文档
  • 网络推广有哪些常用方法搜索引擎优化的技巧有哪些
  • 网站页面制作视频网页版视频怎么下载
  • 做视频网站玩什么配置百度上做网站
  • 西安小公司网站建设wordpress有赞收款插件
  • 新彊生产建设兵团网站十堰响应式网站建设
  • 网站服务公司官网科技小发明
  • 网站空间根目录wordpress如何网址大全
  • 免费网站2022年能用的网址室内设计装修是什么专业
  • 江门北京网站建设小程序开发公司简介
  • 网站租空间多少钱一年服装公司网站
  • 江苏网站开发建设电话滨州网站建设求职简历
  • 网站网页栅格化wordpress 三站合一
  • 网站怎么做 凡科软件定制开发服务流程
  • 北京品牌网站建设公司排名做任务网站有哪些内容
  • 海尔网站建设的目标网站开发建设兼职
  • 公司网站搭建深圳的seo网站排名优化
  • 海外公司网站 国内做备案c4d培训
  • 制作网页网站的软件网站建设开发服务费税率
  • 整站营销系统5118站长工具箱
  • 网站设计参考文献有哪些查询企业信息的网站
  • 昆山高端网站建设最专业的网站设计平台
  • 行业协会网站模板服饰网站建设模板