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

网页设计网站源代码售后服务网点建设是指网站

网页设计网站源代码,售后服务网点建设是指网站,网站结构优化,怎么更改wordpress文件上传大小一、建造者模式简介 建造者模式#xff08;Builder Pattern#xff09;又被称为生成器模式。它旨在构建一个复杂对象的各个部分#xff0c;而不需要指定该对象的具体类。该模式特别适用于对象的构建过程复杂且需要多个步骤的情况。建造者模式是一种对象创建型模式之一…一、建造者模式简介 建造者模式Builder Pattern又被称为生成器模式。它旨在构建一个复杂对象的各个部分而不需要指定该对象的具体类。该模式特别适用于对象的构建过程复杂且需要多个步骤的情况。建造者模式是一种对象创建型模式之一用来隐藏复合对象的创建过程它把复合对象的创建过程加以抽象通过子类继承和重载的方式动态地创建具有复合属性的对象。 建造者模式适用于当一个对象的构建比较复杂将一个对象的构建(?)和对象的表示(?)进行分离的情况 分离构建和表示 建造者模式通过将复杂对象的构建过程与其表示分离开来允许构建过程的变化不会影响到最终对象的表示。也就是说构建者模式关注的是如何一步一步地构建一个对象而不是最终对象是什么样的。 逐步构建 该模式允许通过多个步骤方法来逐步构建对象这些步骤可以是可选的或者是必需的。构建的顺序和内容可以被灵活控制。 GoF一书中对建造者模式的介绍 二、建造者模式的用处 1. 复杂对象的构建 当一个对象的构建过程包含多个步骤或组件时建造者模式可以帮助将这些步骤分开从而使构建过程更加清晰和易于管理。例如构建一个具有多种配置选项的复杂数据结构或图形用户界面GUI组件。 2. 构建过程的灵活性 建造者模式允许灵活地定制对象的创建过程而无需修改对象的具体实现。例如不同的建造者可以用于创建具有不同配置或特性的对象而指挥者Director负责控制构建的步骤和顺序。 3. 解耦构建和表示 将对象的构建过程与表示分离使得构建的过程和最终的对象类型可以独立变化。这种解耦使得系统更加灵活易于扩展和维护。例如你可以在不修改对象创建逻辑的情况下添加新的产品类型或更改产品的外观。 4. 支持逐步构建 对于需要逐步构建的对象建造者模式可以逐步执行构建步骤。这样可以在构建过程中控制每个步骤的执行并允许有选择地构建对象。例如在构建复杂的报告或文档时你可以按章节、段落等逐步添加内容。 5. 提高代码可读性和可维护性 通过将构建过程分解成多个清晰的步骤建造者模式使得代码更加易读和易于维护。每个建造者只负责对象的一个方面的构建使得构建过程更加模块化。 6. 支持复杂的构建逻辑 当对象的构建逻辑非常复杂需要处理多种条件或选项时建造者模式可以封装这些复杂的逻辑。这样可以将构建逻辑集中在建造者类中而客户端代码只需知道如何使用指挥者来创建对象 三、建造者模式的设计方法 builder.cpp #include iostream #include string #include memory// 产品 class House { public:void setDoor(const std::string door) {this-door door;}void setWall(const std::string wall) {this-wall wall;}void setWindow(const std::string window) {this-window window;}void setFloor(const std::string floor) {this-floor floor;}const std::string getDoor() const {return this-door;}const std::string getWall() const {return this-wall;}const std::string getWindow() const {return this-window;}const std::string getFloor() const {return this-floor;}protected:std::string door;std::string wall;std::string window;std::string floor; };// 工程队 class Builder { public:virtual ~Builder() {}virtual void buildWall() 0;virtual void buildDoor() 0;virtual void buildWindow() 0;virtual void buildFloor() 0;virtual std::shared_ptrHouse getHouse() 0;virtual void viewHouse() const 0; // 标记为 const };class VillaBuilder : public Builder { public:VillaBuilder() : house(std::make_sharedHouse()) {}void buildWall() override {house-setWall(别墅墙);}void buildDoor() override {house-setDoor(别墅门);}void buildWindow() override {house-setWindow(别墅窗户);}void buildFloor() override {house-setFloor(别墅地板);}std::shared_ptrHouse getHouse() override {return house;}void viewHouse() const override {std::cout 这是一座好别墅有 house-getWall() , 有 house-getWindow() , 有 house-getDoor() , 有 house-getFloor() ! std::endl;}private:std::shared_ptrHouse house; };class FlatBuilder : public Builder { public:FlatBuilder() : house(std::make_sharedHouse()) {}void buildWall() override {house-setWall(公寓墙);}void buildDoor() override {house-setDoor(公寓门);}void buildWindow() override {house-setWindow(公寓窗户);}void buildFloor() override {house-setFloor(公寓地板);}std::shared_ptrHouse getHouse() override {return house;}void viewHouse() const override {std::cout 这是一座好公寓有 house-getWall() , 有 house-getWindow() , 有 house-getDoor() , 有 house-getFloor() ! std::endl;}private:std::shared_ptrHouse house; };// 设计师 class Director { public:Director(std::shared_ptrBuilder builder) : builder(builder) {}void constructHouse() {builder-buildWall(); // 先建墙builder-buildWindow(); // 然后建窗户builder-buildDoor(); // 再建门builder-buildFloor(); // 最后建地板}void viewHouse() const {builder-viewHouse();}private:std::shared_ptrBuilder builder; };// 设计师请工程队按照图纸建造好房子客户端 void doWorking() {// 请一个建造别墅的工程队std::shared_ptrBuilder builder std::make_sharedVillaBuilder();Director director(builder);director.constructHouse();director.viewHouse();// 请一个建造公寓的工程队builder std::make_sharedFlatBuilder();Director anotherDirector(builder);anotherDirector.constructHouse();anotherDirector.viewHouse(); }int main() {// 开工doWorking();return 0; } 运行效果 产品Product 产品是最终构建出来的复杂对象它包含多个组成部分和属性。产品类通常有多个子类具体实现可以因业务需求而异。 建造者Builder 建造者接口定义了构建产品的各个部分的方法。每个具体的建造者实现这些方法按照特定的步骤来构建产品。 具体建造者ConcreteBuilder 具体建造者实现了建造者接口负责具体的构建步骤。这些步骤包括创建产品的不同部分并在最后将产品返回。 指挥者Director 指挥者类负责按照特定的顺序调用建造者的方法来构建产品。它将建造者的具体实现与构建过程分开使得构建过程与产品的具体类型解耦。 客户端Client 客户端负责使用指挥者和建造者来构建产品。客户端通常不需要知道产品的具体构建过程或其组成部分。 四、总结 建造者模式模仿建筑行业的建造行为设计师设计好图纸交给工程队工程队根据图纸建造房子房子建造好之后交给客户。设计的代码中将构造设计师的图纸和表示工程队造的房子完美分离这样可以把复杂的部分简单化最后有机地组合在一起最终形成我们想要的产品。
http://www.hkea.cn/news/14375117/

相关文章:

  • 免费网站免费在线观看目前最好的找工作平台
  • 沈阳方正建设监理网站平台公司是干什么的
  • 房产网站代运营太原网建科技有限公司
  • 网站怎么宣传如何做社交网站
  • 国家企业信用公示系统官方网站中国建设银行网站缺点
  • 资讯网站排版网络舆情
  • 国外做免费网站的做网站一定要用ps吗
  • 贵阳招聘网站建设本地搭载wordpress
  • 亚洲建行网站打不开wordpress 主题演示文件 导入
  • 自己做网站外包平邑做网站的
  • 服务器怎么发布网站wordpress设置前台投稿
  • 食品企业网站建设策划方案书天津港电子商务网
  • 个人网站免费申请注册在网站加上一个模块怎么做
  • 选择网站开发公司的标准济南网站建设推荐企优互联不错
  • 郴州网站建设ku0735京京商城
  • 浙江企业响应式网站建设付银行的网站建设费的会计科目
  • 威海网站建设哪一家网站界面设计论文
  • 丰南建设局网站想开民宿自己怎么做介绍的网站
  • 网站建设公司专业谷歌安装器
  • 番禺 网站建设wordpress 怎么安装主题
  • wordpress标签多重筛选苏州seo排名优化
  • 会员视频网站建设贪玩游戏官网
  • 龙岩网站建设的软件公司高端网站建
  • 新博念 足球网站开发做网站挣钱打擦边球
  • 网站开发环境实验报告ps制作网站模板
  • 网站建设都包括哪些内容定制网络推广计划
  • 西安网站推广优化搭建博客网站
  • 商丘网站制作方案比较优秀的国外wordpress网站
  • 嘉兴市网站建设企业网站托管套餐
  • p2p网站 开发wordpress新框架vue