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

网站反链有好处吗广告公司名称怎么起

网站反链有好处吗,广告公司名称怎么起,两学一做是什么网站,广东建设信息网是什么网站组合模式#xff08;Composite Pattern#xff09;允许将对象组合成树形结构#xff0c;使得客户端以统一的方式处理单个对象和组合对象。以下是一个经典的 C 实现示例#xff0c;包含透明式设计#xff08;基类定义统一接口#xff09;和内存管理#xff1a; #include…组合模式Composite Pattern允许将对象组合成树形结构使得客户端以统一的方式处理单个对象和组合对象。以下是一个经典的 C 实现示例包含透明式设计基类定义统一接口和内存管理 #include iostream #include vector #include algorithm #include stdexcept #include memory// 抽象组件类 class Component { public:virtual ~Component() default;virtual void operation() const 0;// 管理子组件的透明接口Leaf需处理不支持的操作virtual void add(std::unique_ptrComponent component) {throw std::runtime_error(Unsupported operation: add);}virtual void remove(Component* component) {throw std::runtime_error(Unsupported operation: remove);}virtual const Component* getChild(int index) const {throw std::runtime_error(Unsupported operation: getChild);} };// 叶子节点类 class Leaf : public Component { public:explicit Leaf(std::string name) : name_(std::move(name)) {}void operation() const override {std::cout Leaf[ name_ ] 执行操作 std::endl;}private:std::string name_; };// 组合节点类 class Composite : public Component { public:void operation() const override {std::cout Composite 执行操作包含 children_.size() 个子组件: std::endl;for (const auto child : children_) {child-operation(); // 递归调用子组件的操作}}void add(std::unique_ptrComponent component) override {children_.push_back(std::move(component));}void remove(Component* component) override {auto it std::find_if(children_.begin(), children_.end(),[component](const std::unique_ptrComponent c) {return c.get() component;});if (it ! children_.end()) {children_.erase(it);}}const Component* getChild(int index) const override {if (index 0 index children_.size()) {return children_[index].get();}return nullptr;}private:std::vectorstd::unique_ptrComponent children_; // 使用智能指针管理生命周期 };// 客户端代码 int main() {// 创建组合结构root - [branch1, branch2]// branch1 - [leaf1, leaf2]// branch2 - [leaf3]auto root std::make_uniqueComposite();auto branch1 std::make_uniqueComposite();branch1-add(std::make_uniqueLeaf(A));branch1-add(std::make_uniqueLeaf(B));auto branch2 std::make_uniqueComposite();branch2-add(std::make_uniqueLeaf(C));root-add(std::move(branch1));root-add(std::move(branch2));// 统一调用操作root-operation();return 0; }关键点解析 透明式设计 Component 基类定义了所有组件包括叶子节点的公共接口包括 add/remove 等管理子组件的方法。叶子节点 Leaf 继承自 Component但重写 add/remove 时抛出异常代码中省略异常以简化实际可添加。组合节点 Composite 实现子组件管理逻辑并递归调用子组件的 operation()。 内存管理 使用 std::unique_ptr 管理子组件生命周期确保组合对象析构时自动释放所有子组件。避免手动 new/delete减少内存泄漏风险。 递归结构 Composite 的 operation() 会遍历所有子组件并调用它们的操作形成递归处理。 输出结果 Composite 执行操作包含2个子组件: Composite 执行操作包含2个子组件: Leaf[A] 执行操作 Leaf[B] 执行操作 Composite 执行操作包含1个子组件: Leaf[C] 执行操作此实现展示了组合模式的核心思想客户端无需区分叶子节点和组合节点统一通过 Component 接口操作简化了复杂树形结构的处理。
http://www.hkea.cn/news/14494184/

相关文章:

  • 在哪个网站做外贸生意好wordpress新建全屏页面
  • 我们的优势的网站新闻中心网页设计
  • 国外做测评的网站网站快速排名优化方法
  • 大丰网站开发长沙官网seo分析
  • 绿色风格网站一般到哪个网站找数据库
  • 欧美做爰视频网站app定制公司
  • jsp网站开发视频教程商品推广与营销的方式
  • 做网站数据库及相关配置网站开发的概要设计模板
  • 金牛区建设局网站wordpress 小说
  • 台州本地做网站的网站禁止右键
  • seo如何选择网站标题广告设计培训哪家好
  • 网站建设 西安网站链接怎么做二维码
  • 协会网站建设必要性制作图网店标
  • 做网站窗体属性栏设置文字居中那个网站可以免费建站
  • 济南网站建设92jzh佛山网站建设no.1
  • 有域名和空间怎么做网站潍坊关键词优化服务
  • 服饰网站新闻建设企业网站尺寸
  • dw制作网站模板wordpress首页刷新
  • 企业网站建设的核心是查图百度识图
  • 芮城网站建设应用商城软件下载 app
  • 国内知名网站建设排名oa软件排行
  • 苏州企业网站建站新华路网站建设
  • 网站建设应对客户问题的话术美术馆网站建设
  • 大连建设银行招聘网站展示网站开发 大概多少钱
  • 浙江网站建设品牌升级wordpress开发手册中文版
  • dw网站开发流程wordpress主题后台管理
  • 备案网站负责人坪山区住房和建设局网站
  • 我是做网站的 哪里有单接成都网站建设推广服务
  • 网站建设的课程设计报告网站自建系统
  • 上海集酷网站关于营销的最新的新闻