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

建设网站的企业发展历程大学生创业项目

建设网站的企业发展历程,大学生创业项目,kalium wordpress,专业简历制作目录 1、建造者模式含义 2、建造者模式的讲解 3、使用C实现建造者模式的实例 4、建造者模式的优缺点 5、建造者模式VS工厂模式 1、建造者模式含义 The intent of the Builder design pattern is to separate the construction of a complex object from its representatio…目录 1、建造者模式含义 2、建造者模式的讲解 3、使用C实现建造者模式的实例 4、建造者模式的优缺点 5、建造者模式VS工厂模式 1、建造者模式含义 The intent of the Builder design pattern is to separate the construction of a complex object from its representation. By doing so the same construction process can create different representations. 将一个复杂对象的构建过程与其表示分离使得同样的构建过程可以创建不同的表示。 其实上面这句话本身是有点晦涩难懂后面在网上看到有人这样说便留下深刻的印象 当一个类的构造函数参数个数超过4个而且这些参数有些是可选的参数考虑使用构造者模式。 这个解释也可以理解为应用场景当我们单纯懂得设计模式怎么实现并不重要重要的是要知道适用于什么场景这个就得靠一些经验和思考了。 2、建造者模式的讲解 从上面的UML可以看出建造者模式涉及到以下四个角色的概念 1抽象建造者角色提供一个接口规范产品对象的建造一般由子类实现。一般来说产品的组成部分数与建造方法数相同即有多少组成部分就有多少个建造方法。 2具体建造者角色该角色实现了抽象建造者抽象建造者接口主要是实现所有声明的方法以及返回建造好的产品实例。 3导演者角色负责调用具体建造者按照顺序建造产品。导演者只负责调度真正执行的是具体建造者角色。 4产品角色该角色是建造的复杂对象提供基本方法。 3、使用C实现建造者模式的实例 #include iostream #include string// 产品类 class Product { public:void setPartA(const std::string partA) {m_partA partA;}void setPartB(const std::string partB) {m_partB partB;}void setPartC(const std::string partC) {m_partC partC;}void show() const {std::cout Product Parts: m_partA , m_partB , m_partC std::endl;}private:std::string m_partA;std::string m_partB;std::string m_partC; };// 抽象建造者类 class Builder { public:virtual void buildPartA() 0;virtual void buildPartB() 0;virtual void buildPartC() 0;virtual Product* getResult() 0; };// 具体建造者类 class ConcreteBuilder : public Builder { public:void buildPartA() override {m_product-setPartA(Part A);}void buildPartB() override {m_product-setPartB(Part B);}void buildPartC() override {m_product-setPartC(Part C);}Product* getResult() override {return m_product;}private:Product* m_product new Product(); };// 指挥者类 class Director { public:void construct(Builder* builder) {builder-buildPartA();builder-buildPartB();builder-buildPartC();} };int main() {Director director;ConcreteBuilder builder;director.construct(builder);Product* product builder.getResult();product-show();delete product;return 0; }在上述示例中我们定义了一个产品类Product它有三个部分Part A、Part B、Part C。然后我们定义了一个抽象建造者类Builder其中包含了构建产品各个部分的纯虚函数。接着我们实现了具体的建造者类ConcreteBuilder它实现了抽象建造者类的纯虚函数并负责构建产品对象。最后我们定义了一个指挥者类Director它负责调用建造者的方法来构建产品。 在主函数中我们创建了一个具体的建造者对象并将其传递给指挥者对象。指挥者根据具体的建造者对象来构建产品最终得到一个完整的产品对象。我们可以通过产品对象的show()方法来展示产品的各个部分。 这就是一个简单的建造者模式的C源码示例 4、建造者模式的优缺点 1优点 1分离构建过程和表示建造者模式可以将一个复杂对象的构建过程与其表示分离使得同样的构建过程可以创建不同的表示形式。这样可以提高代码的灵活性和可维护性。 2更好的封装性通过建造者模式可以将对象的构建过程封装在具体的建造者类中客户端只需要与指挥者进行交互无需关心具体的构建细节。这样可以隐藏对象的创建过程提供更好的封装性。 3可以控制构建过程建造者模式允许你逐步构建对象并在每个步骤中进行必要的操作、检查或验证。这样可以更加灵活地控制对象的构建过程满足不同的需求。 4创建不同表示形式的对象通过定义不同的建造者和指挥者可以根据需求定制不同的构建过程创建不同的产品表示形式。这样可以提供更多的选择和灵活性。 2缺点 1增加了代码量使用建造者模式会增加额外的类和接口从而增加了代码量。如果对象的构建过程比较简单使用建造者模式可能会显得过于繁琐。 2增加了系统复杂性引入建造者模式会增加系统的复杂性因为需要定义多个类和接口并且需要协调指挥者和建造者之间的关系。这可能会增加理解和维护的难度。 3不适用于创建简单对象如果对象的构建过程比较简单只有少量的步骤或参数使用建造者模式可能会显得过于繁琐。此时直接使用简单工厂或工厂方法模式可能更加合适。 总的来说建造者模式通过分离构建过程和表示提供了更好的封装性和灵活性可以控制构建过程并创建不同表示形式的对象。然而它也增加了代码量和系统复杂性不适用于创建简单对象。 5、建造者模式VS工厂模式 建造者模式和工厂模式是两种常见的创建型设计模式它们有以下几点区别 1目的不同工厂模式关注的是创建对象的过程将对象的创建逻辑封装在一个工厂类中通过工厂类来创建具体的对象。而建造者模式关注的是创建复杂对象的过程将对象的构建过程与其表示分离通过指挥者和建造者来逐步构建对象。 2对象复杂度不同工厂模式适用于创建简单对象通常只需要一两个步骤即可完成对象的创建。而建造者模式适用于创建复杂对象对象的构建过程需要多个步骤并且可以根据需求定制不同的构建过程。 3调用方式不同工厂模式通过调用工厂类的方法来创建对象客户端直接与工厂类交互。而建造者模式通过指挥者来控制建造者的构建过程客户端只需要与指挥者进行交互无需直接与建造者类交互。 4灵活性不同工厂模式相对较为灵活可以根据需要扩展和添加新的产品类型只需要添加对应的具体产品和工厂类即可。而建造者模式相对更加灵活可以根据需要定制不同的构建过程创建不同的产品表示形式。 总的来说工厂模式适用于创建简单对象将对象的创建过程封装在工厂类中而建造者模式适用于创建复杂对象通过指挥者和建造者来分步构建对象。
http://www.dnsts.com.cn/news/178680.html

相关文章:

  • 可以直接进入网站的正能量网站wordpress修改管理密码错误
  • 百度能做网站建设吗游戏编程怎么学
  • wap网站不流行那个网站能找到人
  • 江门网站推广技巧付费中国来料加工网
  • 呼家楼做网站的公司哪家好cms与php做网站的区别
  • 更合网站建设制作合肥瑶海区范围
  • 网站内容编写方法新开传奇网站站
  • 衡水做淘宝网站建设官方企业网站
  • 绝对域名做网站网站开发用例图
  • vue做网站前端深圳小程序开发定制公司
  • 那一个网站可以教做甜品的网站网页的区别与联系
  • 阿里云服务器如何用IP做网站成都网站建设公司招聘
  • 网站怎么添加管理员视频网站开发的论文
  • 福州学做网站用户个人中心页面html源码
  • 网站开发合作协议seo综合查询站长工具怎么用
  • 网站制作系统哪个好装饰公司加盟
  • 网站需要审核吗设计有哪些网站
  • 保定市网站建设公司天津建设工程信息网评标专家 终审
  • 网站开发与维护实训总结怎么自己做游戏软件
  • 租房子网站怎么做建设部网站社保联网
  • 长沙网站制作多少钱建设一个网站的流程
  • 有关网站建设文章如何建单位网站
  • 网站目录结构图专业的佛山网站建设价格
  • 网站后台上传用户界面不显示网站建设前端后端
  • 公司网站忘了怎么做合肥房产网官方网站
  • 班级网站建设毕业设计开题报告网站背景全屏
  • 网站项目申报书建设规模网站开发 多语言
  • 织梦网站模板免费新建网站怎么做优化
  • 网站建设运营协议互动营销案例100
  • wordpress网站克隆公明做企业网站