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

怎么找网站建设有效的网站优化

怎么找网站建设,有效的网站优化,视频剪辑培训,网络营销和网络销售的关系通过“对象创建” 模式绕开new#xff0c;来避免对象创建#xff08;new#xff09;过程中所导致的紧耦合#xff08;依赖具体类#xff09;#xff0c;从而支持对象创建的稳定。它是接口抽象之后的第一步工作。 一、动机 在软件系统中#xff0c;有时候面临着“一个复…通过“对象创建” 模式绕开new来避免对象创建new过程中所导致的紧耦合依赖具体类从而支持对象创建的稳定。它是接口抽象之后的第一步工作。 一、动机 在软件系统中有时候面临着“一个复杂对象”的创建工作其通常由各个部分的子对象用一定的算法构成由于需求的变化这个复杂对象的各个部分经常面临着剧烈的变化但是将它们组合在一起的算法却相对稳定。 如何应对这种变化如何提供一种 “封装机制”来隔离出“复杂对象的各个部分”的变化从而保持系统中的“稳定构建算法”不随着需求改变而改变 二、模式定义 将一个复杂对象的构建与其表示相分离使得同样的构建过 程(稳定)可以创建不同的表示(变化)。 ——《设计模式》GoF 三、代码示例 我们以房屋为例来展示建造者模式的应用。House类代表房屋对象而HouseBuilder抽象类定义了构建房屋的步骤。StoneHouseBuilder是HouseBuilder的具体实现用于构建石头房屋。HouseDirector类负责指导具体建造者对象的构建过程。 通过使用建造者模式我们可以将房屋对象的构建逻辑与客户端代码分离开来。客户端只需要创建一个合适的具体建造者对象并将其传递给指导者进行构建。这样可以使客户端代码更简洁、可读性更高并且在需要构建不同类型的房屋时更加灵活和扩展。 #include iostreamclass House { public:void SetFoundation(const std::string foundation) {this-foundation foundation;}void SetWalls(const std::string walls) {this-walls walls;}void SetRoof(const std::string roof) {this-roof roof;}void SetDoors(const std::string doors) {this-doors doors;}void SetWindows(const std::string windows) {this-windows windows;}void Show() {std::cout 房屋部分 std::endl;std::cout 地基 foundation std::endl;std::cout 墙壁 walls std::endl;std::cout 屋顶 roof std::endl;std::cout 门 doors std::endl;std::cout 窗户 windows std::endl;}private:std::string foundation; // 地基std::string walls; // 墙壁std::string roof; // 屋顶std::string doors; // 门std::string windows; // 窗户 };class HouseBuilder { public:virtual ~HouseBuilder() {}House* GetResult() {return pHouse;}virtual void BuildFoundation() 0; // 构建地基virtual void BuildWalls() 0; // 构建墙壁virtual void BuildRoof() 0; // 构建屋顶virtual void BuildDoors() 0; // 构建门virtual void BuildWindows() 0; // 构建窗户protected:House* pHouse; };class StoneHouseBuilder : public HouseBuilder { public:StoneHouseBuilder() {pHouse new House();}void BuildFoundation() override {pHouse-SetFoundation(石头地基);}void BuildWalls() override {pHouse-SetWalls(石头墙壁);}void BuildRoof() override {pHouse-SetRoof(石头屋顶);}void BuildDoors() override {pHouse-SetDoors(木门);}void BuildWindows() override {pHouse-SetWindows(玻璃窗户);} };class HouseDirector { public:HouseDirector(HouseBuilder* builder) {pHouseBuilder builder;}House* Construct() {pHouseBuilder-BuildFoundation(); // 构建地基pHouseBuilder-BuildWalls(); // 构建墙壁pHouseBuilder-BuildRoof(); // 构建屋顶pHouseBuilder-BuildDoors(); // 构建门pHouseBuilder-BuildWindows(); // 构建窗户return pHouseBuilder-GetResult();}private:HouseBuilder* pHouseBuilder; };int main() {HouseBuilder* builder new StoneHouseBuilder(); // 使用石头房屋构建器HouseDirector director(builder);House* house director.Construct(); // 构建房屋house-Show(); // 展示房屋部分delete house;delete builder;return 0; } 输出 房屋部分 地基石头地基 墙壁石头墙壁 屋顶石头屋顶 门木门 窗户玻璃窗户 这时候假如我们有新需求需要造一个黄金打造的房子这时候就很方便了只需要增加GoldenHouseBuilder 建造器就可以完成这个扩展不需要更改以前的代码满足开放-封闭原则 class GoldenHouseBuilder : public HouseBuilder { public:GoldenHouseBuilder() {pHouse new House();}void BuildFoundation() override {pHouse-SetFoundation(黄金地基);}void BuildWalls() override {pHouse-SetWalls(黄金墙壁);}void BuildRoof() override {pHouse-SetRoof(黄金屋顶);}void BuildDoors() override {pHouse-SetDoors(金门);}void BuildWindows() override {pHouse-SetWindows(钻石窗户);} };调用过程 HouseBuilder* goldenBuilder new GoldenHouseBuilder(); // 使用黄金房屋构建器HouseDirector goldenDirector(goldenBuilder);House* goldenHouse goldenDirector.Construct(); // 构建黄金房屋goldenHouse-Show(); // 展示黄金房屋部分delete goldenHouse;delete goldenBuilder;房屋部分 地基黄金地基 墙壁黄金墙壁 屋顶黄金屋顶 门金门 窗户钻石窗户 四、结构 五、总结 在软件开发过程中有时候需要构建具有复杂结构的对象。如果直接在客户端代码中创建和配置这些对象会导致代码变得复杂且难以维护。此外如果要构建多个具有不同配置的相似对象每次都重复编写相似的构建代码也是低效的。为了解决这些问题可以使用建造者模式。 建造者模式的核心思想是将对象的构建过程从其表示中分离出来。它允许你使用相同的构建过程来创建不同的表示形式。该模式将对象的构建委托给一个单独的建造者对象该对象负责构建对象的各个部分并最后返回构建好的对象。 在示例代码中我们以房屋为例来展示建造者模式的应用。House类代表房屋对象而HouseBuilder抽象类定义了构建房屋的步骤。StoneHouseBuilder和GoldenHouseBuilder是HouseBuilder的具体实现分别用于构建石头房屋和黄金房屋。HouseDirector类负责指导具体建造者对象的构建过程。 通过使用建造者模式我们可以将房屋对象的构建逻辑与客户端代码分离开来。客户端只需要创建一个合适的具体建造者对象并将其传递给指导者进行构建。这样可以使客户端代码更简洁、可读性更高并且在需要构建不同类型的房屋时更加灵活和扩展。 建造者模式适用于构建复杂对象的情况将构建逻辑与表示分离使得构建过程更加灵活和可扩展。它提供了一种组织和管理对象构建的方式避免了繁琐和重复的构建代码。通过委托具体的建造者对象来构建对象客户端代码可以专注于高级操作而无需关心对象的内部构建细节。
http://wiki.neutronadmin.com/news/154290/

相关文章:

  • 前端页面设计网站ppt免费下载模板网站
  • 户外媒体网站建设免费网站建设规划表
  • 国内做音乐网站做远程培训网站用什么系统
  • 服装企业网站源码河北高端建设网站
  • 安徽建站优化没有网站可以做seo排名吗
  • 做外贸的j交易网站网站套餐到期啥意思
  • 如何建单位网站大连seo排名
  • 网站前端是什么seo数据优化教程
  • 建设部网站39文件网站开发全程实例
  • 网站开发公司内部数据字典北京关键词优化报价
  • 博罗网站设计公司seo优化评论
  • 上海网站设计的公司做膜结构那个网站好
  • 网站县区分站点建设网站的前端和后端
  • 有做外贸的平台网站吗哪个好用?
  • 济南网站建设seo优化设计室内装修效果图
  • wordpress网站弹窗插件wordpress 模板 含数据
  • pc端网站建设哪里有做网站不给源代码
  • 建设银行网站的目的是什么wordpress查询码
  • 恐怖音乐怎么做的视频网站wordpress 用户 插件
  • 常州做网站公司有哪些中国建设银行官网站纪念币
  • 怎样做淘宝的导购网站推广建设网站学什么语言
  • 襄阳市建设工程造价管理站网站手机网站 幻灯片js
  • 站长之家官网查询深圳建立网站
  • 凤岗镇做网站卧龙区2015网站建设价格
  • 目前流行的app网站开发模式jeecms 怎么建设网站
  • 四川建设工程网站网站 医院信息化建设
  • 气象网站建设需求方案陕西省建设资质是哪个网站
  • 广州网站快速制作上海有哪些外贸公司不错的
  • 做gif网站梦织网站
  • 自己有服务器如何架设网站温州敎玩具网站建设