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

知企业网站怎么打不开成都个人seo搜狗排名

知企业网站怎么打不开,成都个人seo搜狗排名,产品代理推广方案,虫虫 wordpress动机 在软件系统中#xff0c;有时候面临着“一个复杂对象”的创建工作#xff0c;其通常由各个部分的子对象用一定的算法构成#xff1b;由于需求的变化#xff0c;这个复杂对象的各个部分经常面临着剧烈的变化#xff0c;但是将它们组合在一起的算法却相对稳定。 如何…动机 在软件系统中有时候面临着“一个复杂对象”的创建工作其通常由各个部分的子对象用一定的算法构成由于需求的变化这个复杂对象的各个部分经常面临着剧烈的变化但是将它们组合在一起的算法却相对稳定。 如何应对这种变化如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化从而保持系统中的“稳定构建算法”不随着需求改变而改变 代码示例建立各种房子比如砖瓦房高楼别墅等房子 class House{//.... };class HouseBuilder { public:House* GetResult(){return pHouse;}virtual ~HouseBuilder(){} protected:House* pHouse;virtual void BuildPart1()0;virtual void BuildPart2()0;virtual void BuildPart3()0;virtual void BuildPart4()0;virtual void BuildPart5()0;};class StoneHouse: public House{};// 石头房子的创建override HouseBuilder里面的流程 class StoneHouseBuilder: public HouseBuilder{ protected:virtual void BuildPart1(){//pHouse-Part1 ...;}virtual void BuildPart2(){}virtual void BuildPart3(){}virtual void BuildPart4(){}virtual void BuildPart5(){}};// 房子具体构建过程 class HouseDirector{public:// 有一个HouseBuilder的指针HouseBuilder* pHouseBuilder;HouseDirector(HouseBuilder* pHouseBuilder){this-pHouseBuilderpHouseBuilder;}House* Construct(){ // 整个构建流程是稳定的pHouseBuilder-BuildPart1();for (int i 0; i 4; i){pHouseBuilder-BuildPart2();}bool flagpHouseBuilder-BuildPart3();if(flag){pHouseBuilder-BuildPart4();}pHouseBuilder-BuildPart5();return pHouseBuilder-GetResult();} };int main() {// 创建石头房子的建造者StoneHouseBuilder stoneHouseBuilder;// 创建房子Director并指定建造者HouseDirector houseDirector(stoneHouseBuilder);// 构建房子House* stoneHouse houseDirector.Construct();// 输出结果if (stoneHouse ! nullptr) {// 假设 House 类有适当的输出方法// 这里只是简单示例实际使用时需要根据具体类的实现调用相应的方法std::cout Stone House constructed. std::endl;} else {std::cout Failed to construct Stone House. std::endl;}// 释放资源delete stoneHouse;return 0; }上述代码涉及了Builder设计模式包括以下几个类 House 类: 表示待构建的产品即房子。在示例中StoneHouse 类是 House 的具体实现。 HouseBuilder 抽象类: 定义了构建产品房子的抽象接口。具体的建造者例如 StoneHouseBuilder需要继承这个抽象类并实现接口中的方法以完成具体产品的构建。 StoneHouseBuilder 类: 是HouseBuilder的具体实现负责构建石头房子。它通过实现抽象接口中的方法来完成具体的建造流程。 HouseDirector 类: 起到指导建造的作用通过构造函数接收一个具体的建造者对象。通过调用建造者的方法按照一定的构建流程组织建造者完成产品的构建。 main 函数: 在 main 函数中创建了 StoneHouseBuilder 的实例然后创建了一个HouseDirector的实例并将建造者传递给导演。通过导演的 Construct 方法按照一定的构建流程构建了石头房子并输出结果。 总体而言Builder设计模式的目的是将一个复杂对象的构建与它的表示分离使得同样的构建过程可以创建不同的表示。在这个示例中HouseBuilder 抽象类定义了构建房子的接口StoneHouseBuilder 实现了具体的石头房子构建流程而 HouseDirector 则负责协调建造者完成整个构建流程。 Builder要点总结 Builder 模式主要用于“分步骤构建一个复杂的对象”。在这其中“分步骤”是一个稳定的算法而复杂对象的各个部分则经常变化。 变化点在哪里封装哪里—— Builder模式主要在于应对“复杂对象各个部分”的频繁需求变动。其缺点在于难以应对“分步骤构建算法”的需求变动。 在Builder模式中要注意不同语言中构造器内调用虚函数的差别C vs. C#) 。 chatGPT给出的builder的例子 以下是一个简单的C示例代码演示Builder设计模式 #include iostream #include string// 产品类 class Product { public:void AddPart(const std::string part) {parts part ;}void Show() const {std::cout Product Parts: parts std::endl;}private:std::string parts; };// 抽象建造者类 class Builder { public:virtual void BuildPart1() 0;virtual void BuildPart2() 0;virtual Product* GetResult() 0; };// 具体建造者类 class ConcreteBuilder : public Builder { public:ConcreteBuilder() {product new Product();}void BuildPart1() override {product-AddPart(Part1);}void BuildPart2() override {product-AddPart(Part2);}Product* GetResult() override {return product;}private:Product* product; };// 指导者类 class Director { public:Director(Builder* builder) : builder(builder) {}void Construct() {builder-BuildPart1();builder-BuildPart2();}private:Builder* builder; };int main() {// 创建具体建造者ConcreteBuilder concreteBuilder;// 创建指导者并传入具体建造者Director director(concreteBuilder);// 指导者构建产品director.Construct();// 获取最终产品Product* product concreteBuilder.GetResult();// 展示产品if (product ! nullptr) {product-Show();delete product;}return 0; } 在这个示例中Product 表示最终构建的复杂对象Builder 是抽象建造者类ConcreteBuilder 是具体建造者类Director 是指导者类。通过指导者调用具体建造者的方法最终得到构建完成的产品。这个例子中的产品是简单的包含两个部分的字符串实际应用中可以根据需求定义更复杂的产品结构。
http://www.eeditor.cn/news/118672/

相关文章:

  • 网站301重定向的意义深圳品牌男装有哪些
  • 技术支持 重庆网站网站都是h5响应式
  • 蓬莱网站建设联系电话做外销网站服务器好吗
  • 最佳磁力搜索天堂wordpress博客模板seo
  • 查找做影评的工作网站域名注册兼职
  • 南县建设局网站信息网络安全包括
  • 西安网站制作机构搜索引擎优化的方式
  • 重庆 手机网站制作36氪网站用什么程序做的
  • 美食网站的设计与制作代码谁给个能用的网址
  • 苏州城乡建设网站智联招聘网站怎么做微招聘信息
  • 谷歌云做网站服务器软件开发培训费用
  • 网站制作与app开发哪个要难一点小型人力资源公司注册
  • 在线教育网站开发实例王业侨
  • 网站开发用什么语言最多做网站dw
  • 北京各大网站推广平台哪家好好的网站特点
  • 400网站总机 阿里云jsp做就业网站
  • seo 网站标题长度海口新闻头条最新消息
  • 科技类网站设计wordpress开发文档
  • 珠海市网站开发公司公司网站域名在哪里备案
  • 安徽龙山建设网站广告创意设计与鉴赏
  • 南通做网站哪家好长春网站排名优化报价
  • 广州做外贸网站的公司简介做网站 做好把我踢开
  • 网站主机与服务器中介网站设计
  • 做户外运动的网站视频拍摄方案
  • 网站建设考虑因素南宁优化推广服务
  • 做网站和app有什么区别做类似淘宝的网站
  • 做物流百度网站做中医药网站有前景吗
  • 站长之家网站素材企业网站手机版源码下载
  • 丽江网站建设c3sales怎么下载河北人社app
  • 山东烟台建设厅网站建设一个货架网站