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

上海做网站比较好的公司有哪些太原seo代理

上海做网站比较好的公司有哪些,太原seo代理,抖音短视频推广,品牌宣传网站建设1、组合模式的提出 在软件开发过程中#xff0c;使用者Client过多依赖所操作对象内部的实现结构#xff0c;如果对象内部的实现结构频繁发生变化#xff0c;则使用者的代码结构将要频繁地修改#xff0c;不利于代码地维护和扩展性#xff1b;组合模式可以解决此类问题。组…1、组合模式的提出 在软件开发过程中使用者Client过多依赖所操作对象内部的实现结构如果对象内部的实现结构频繁发生变化则使用者的代码结构将要频繁地修改不利于代码地维护和扩展性组合模式可以解决此类问题。组合模式可以使用者代码与复杂地操作对象结构进行解耦根据操作对象的实现结构抽象出一个的基类让操作对象内部根据需求变化实现复杂数据地操作接口则使用者使用操作对象提供的统一接口就可完成功能。 2、需求描述 有根节点、子节点、叶子节点这三种节点都有自己的名字。操作规则根节点下面可以添加子节点和叶子节点子节点下面可以添加子子节点和叶子节点叶子节点下面不能再添加其他节点。 设计一个功能代码模拟上面的节点添加规则使用者可以访问这些节点的数据结构。 3、功能实现 1UML图如下 2代码实现如下 #include iostream #include string #include vectorclass Component { protected:std::string m_strName; public:Component(std::string name):m_strName(std::move(name)){};virtual void operation() const 0;std::string getName(){return m_strName;};virtual ~Component(){}; };class Leaf:public Component { public:explicit Leaf(std::string name):Component(name){};virtual void operation() const override{std::cout Leaf: m_strName std::endl;}; };class Composite:public Component { private:std::vectorComponent*m_vecChildren; public:explicit Composite(std::string name):Component(name){};void add(Component* p){m_vecChildren.emplace_back(p);};void remove(Component* p){for (auto it m_vecChildren.begin(); it ! m_vecChildren.end(); it) {if (*it p) {m_vecChildren.erase(it);std::cout m_strName remove: p-getName() std::endl;break;}}};void operation() const override {std::cout Composite: m_strName std::endl;for (const auto child : m_vecChildren) {child-operation();}}~Composite(){std::vectorComponent*().swap(m_vecChildren);std::cout ~Composite() std::endl;} }; class Client { public:void doWork(){// 创建叶节点Component* leafNode1 new Leaf(leafNode 1);Component* leafNode2 new Leaf(leafNode 2);Component* leafNode3 new Leaf(leafNode 3);// 创建容器子节点Composite* childNode1 new Composite(childNode 1);Composite* childNode2 new Composite(childNode 2);// 将叶节点添加到容器子节点中childNode1-add(leafNode1);childNode1-add(leafNode2);childNode2-add(leafNode3);// 将容器节点添加到根容器中Composite* rootNode new Composite(rootNode);rootNode-add(childNode1);rootNode-add(childNode2);// 调用根容器的操作方法将逐层遍历整个组合结构并调用每个节点的操作方法rootNode-operation();//移除节点std::cout \n std::endl;childNode1-remove(leafNode2);rootNode-remove(childNode2);std::cout \n std::endl;// 调用根容器的操作方法将逐层遍历整个组合结构并调用每个节点的操作方法rootNode-operation();delete leafNode1;delete leafNode2;delete leafNode3;delete childNode1;delete childNode2;delete rootNode;leafNode1 nullptr;leafNode2 nullptr;;leafNode3 nullptr;;childNode1 nullptr;;childNode2 nullptr;;rootNode nullptr;;} }; int main() {Client obj;obj.doWork();return 0; }程序运行结果如下
http://www.w-s-a.com/news/672170/

相关文章:

  • dede学校网站百度联盟是什么
  • 献县网站建设网站开发专业定制
  • 龙华做网站yihe kj安徽六安彩礼一般给多少
  • flash网站建设公司我的小程序在哪里找
  • 建网站需要数据库吗如何制作简单的网页链接
  • 杭州设计企业网站高端公司上虞做网站公司
  • 做网站能赚钱么用wordpress搭建知名网站
  • 阿里云服务器网站开发青岛做网站找哪家
  • 凡科做的网站为什么打不开织梦cms仿某作文网站整站源码(带采集)安装数据库
  • 免费h5模板网站模板汽车报价网址
  • 蔡甸网站建设烟台网站建设yt
  • 最流行的网站开发新开的网页游戏平台
  • 暴富建站wordpress 标签分类
  • 搞笑网站源码百度快照替代
  • 重庆网站建设哪家公司哪家好关键词是怎么排名的
  • 青县网站建设今天国际大事新闻
  • 深圳正规网站制作哪里好怎样优化网络
  • 米拓网站建设教程dw成品网站成品视频教学
  • 用jsp做的网站源代码天门网站网站建设
  • 百度如何把网站做链接地址有没有资源可以在线观看
  • 淮安做网站找哪家好电子商务网站建设规划书的内容
  • 开发网站建设用什么框架php黄页系统
  • 聊城制作网站全球十大电商平台排名
  • 用什么来网站开发好mega menu wordpress
  • 深圳制作网站有用吗wordpress的主题
  • 网站的规划与创建天津市南开区网站开发有限公司
  • 免备案网站主机建站哪个平台好
  • python做网站 不适合单页营销分享网站
  • 珠海市研发网站建设建设网站挣钱
  • 阿里巴巴国际站特点做wps的网站赚钱