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

网站渗透案例wordpress电影模板

网站渗透案例,wordpress电影模板,章丘网站开发,成crm网文章目录 建造者模式#xff08;Builder Pattern#xff09;概述建造者模式UML图作用#xff1a;建造者模式的结构产品#xff08;Product#xff09;#xff1a;抽象建造者#xff08;Builder#xff09;#xff1a;具体建造者#xff08;Concrete Builder#xff… 文章目录 建造者模式Builder Pattern概述建造者模式UML图作用建造者模式的结构产品Product抽象建造者Builder具体建造者Concrete Builder指挥者Director C 代码示例1C示例代码2 建造者模式Builder Pattern概述 定义 建造者模式是一种创建型设计模式它将一个复杂对象的构建与它的表示分离使得同样的构建过程可以创建不同的表示。也就是说它把对象的创建逻辑和表示逻辑分离开来让代码结构更加清晰便于维护和扩展。 建造者模式UML图 作用 便于创建复杂对象对于那些具有多个属性、构造过程比较复杂的对象使用建造者模式可以分步来构建对象使创建过程更有条理。例如创建一个包含多个部件的电脑对象要配置 CPU、内存、硬盘等多种组件通过建造者模式能清晰地完成配置过程。 提高代码的可维护性和可读性把对象构建的各个步骤封装在不同的方法中相比于在构造函数中罗列大量参数或者在一个方法里写复杂的初始化逻辑代码结构更加清晰后续阅读和维护代码时更容易理解对象的构建流程。 实现不同的构建配置可以通过不同的建造者实现来创建对象的不同配置版本比如对于一款游戏角色可以创建不同属性配置的角色实例满足不同场景需求。 建造者模式的结构 产品Product 这是最终要创建的复杂对象它通常包含多个部件或者属性比如上述提到的电脑对象其内部有 CPU、内存、硬盘等不同的成员变量来构成完整的电脑实体。 抽象建造者Builder 它定义了创建产品各个部件的抽象方法以及返回最终产品对象的抽象方法。比如对于电脑的抽象建造者会有抽象的配置 CPU、配置内存等方法还有获取构建好的电脑的抽象方法。 具体建造者Concrete Builder 实现了抽象建造者中定义的抽象方法具体地来构建产品的各个部件按照特定的逻辑和配置完成产品的组装每个具体建造者可以创建出具有不同配置特点的产品。 指挥者Director 它负责指挥建造者进行对象的构建通过调用建造者的相关方法来按顺序完成产品的创建过程不过它并不关心具体的构建细节只是协调构建步骤。 C 代码示例1 以下以创建一个简单的电脑对象为例来展示建造者模式的代码实现 #includeiostream #includestring// 产品类电脑 class Computer { private:std::string cpu;int memory;int hardDisk; public:void setCpu(const std::string cpu){this-cpu cpu;}void setMemory(int memory){this-memory memory;}void setHardDisk(int hardDisk){this-hardDisk hardDisk;}void showInfo(){std::cout CPU: cpu std::endl;std::cout Memory: memory GB std::endl;std::cout Hard Disk: hardDisk GB std::endl;} };// 抽象建造者类 class ComputerBuilder { public:virtual void buildCpu() 0;virtual void buildMemory() 0;virtual void buildHardDisk() 0;virtual Computer* getComputer() 0; };// 具体建造者类创建高配电脑 class HighEndComputerBuilder :public ComputerBuilder { private:Computer* computer; public:HighEndComputerBuilder() {computer new Computer();}void buildCpu() override{computer-setCpu(Intel Core i9);}void buildMemory() override{computer-setMemory(32);}void buildHardDisk() override{computer-setHardDisk(1024);}Computer* getComputer() override{return computer;} };// 具体建造者类创建低配电脑 class LowEndComputerBuilder : public ComputerBuilder { private:Computer* computer; public:LowEndComputerBuilder(){computer new Computer();}void buildCpu() override {computer-setCpu(Intel Core i3);}void buildMemory() override {computer-setMemory(8);}void buildHardDisk() override{computer-setHardDisk(256);}Computer* getComputer() override{return computer;} };// 指挥者类 class Director { private:ComputerBuilder* builder; public:void setBuilder(ComputerBuilder* builder) {this-builder builder;}Computer* construct(){builder-buildCpu();builder-buildMemory();builder-buildHardDisk();return builder-getComputer();} };int main() {Director director;// 创建高配电脑HighEndComputerBuilder highEndBuilder;director.setBuilder(highEndBuilder);Computer* highEndComputer director.construct();highEndComputer-showInfo();// 创建低配电脑LowEndComputerBuilder lowEndBuilder;director.setBuilder(lowEndBuilder);Computer* lowEndComputer director.construct();lowEndComputer-showInfo();delete highEndComputer;delete lowEndComputer;return 0; }在上述代码中 Computer类就是产品类代表要构建的电脑对象有设置各部件属性和展示自身信息的方法。 ComputerBuilder是抽象建造者定义了构建电脑各部件及获取电脑对象的抽象方法。 HighEndComputerBuilder和LowEndComputerBuilder是具体建造者分别按照高配和低配的配置来构建电脑对象。 Director类作为指挥者通过调用建造者的方法来协调完成电脑对象的构建过程最终客户端代码main函数中可以方便地通过指挥者和不同的建造者配合创建出不同配置的电脑对象整个创建过程条理清晰易于扩展和维护。 C示例代码2 #includeiostream #includelist #includestring using namespace std;class product {liststringls; public:void add(string m_str){ls.push_back(m_str);}void show(){liststring::iterator itr ls.begin();for(;itr!ls.end();itr){cout*itrendl;}} }; class builder { public:virtual void head(){};virtual void body(){};virtual void leg(){};virtual void hand(){};virtual product getresult(){product s;return s;}; };class conbuild1:public builder { private:product *m_product; public:conbuild1(){m_product new product();}void head(){m_product-add(1的头);}void body(){m_product-add(1的身体);}void leg(){m_product-add(1的腿);}void hand(){m_product-add(1的手);}product getresult(){return *m_product;} };class conbuild2:public builder { private:product *m_product; public:conbuild2(){m_product new product();}void head(){m_product-add(2的头);}void body(){m_product-add(2的身体);}void leg(){m_product-add(2的腿);}void hand(){m_product-add(2的手);}product getresult(){return *m_product;} };class director { public:void createpeople(builder *s){s-body();s-hand();s-leg();s-head();} };int main() {director s;builder *p1 new conbuild1;builder*p2 new conbuild2;s.createpeople(p1);product s1 p1-getresult();s1.show();cout---------------endl;s.createpeople(p2);product s2 p2-getresult();s2.show(); }
http://www.hkea.cn/news/14263857/

相关文章:

  • 做网站比较专业的公司网站建设推广公司哪家权威
  • 太原企业网站seo网站建设与维护经营范围
  • 网站备案是备案域名还是空间招标网下载
  • 学做内账的网站培训网站模板
  • 私人彩票网站做几年牢简易购物网站模板
  • 会议网站建设方案辛集seo网站优化价格
  • 卖机器的网站怎么做wordpress无发上传图片
  • 天津微信网站开发榆林市网站seo
  • 江苏城乡住房建设部网站怎么看网站有没有收录
  • 泉州机票网站建设做网站对象存储
  • 网站备案 更名厦门关键词排名推广
  • 如何让网站排名下降线上教育课程的网络营销方式
  • 网站的盈利模式微信公众号缴费
  • 江苏省建设局报考网站seo网站推广策略
  • 长春好的做网站公司有哪些网站建设销售实习报告
  • 网站iis配置自己做导航网站
  • 济南外贸建站百度网站解封
  • 企业网站 设计网站文章排版工具
  • 网站建设公司业务电脑网站开发者模式
  • 域名申请好怎么做网站如何申请百度竞价排名
  • 做网站需要向客户了解什么河南国控建设集团招标网站
  • 中山精品网站建设公司有支付功能网站用的编程语言
  • php在网站上怎么做充值个人网站有哪些网站
  • 厦门孚珀科技 网站开发网站标题怎么改
  • 网站的flash怎么做的app的wordpress
  • 建设银行安徽 招聘网站做网站代理能赚钱吗
  • 网站上微信支付功能18.ppt网站是谁做的
  • 链接网站开发需要多少钱wordpress 黑客主题
  • 网站管理员权限wordpress获取链接
  • 贵阳网站开发哪家便宜it行业是什么工作 做什么的