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

济南网站优化推广公司html网页制作软件有哪些

济南网站优化推广公司,html网页制作软件有哪些,游戏网站建设的策划方案,怎样做影视网站文章目录 简介建造者模式的核心概念产品(Product)建造者(Builder)指挥者(Director)建造者模式与其他设计模式的关系工厂模式和建造者模式uml对比 建造者模式的实现步骤建造者模式的应用场景spring中应用 建…

文章目录

  • 简介
  • 建造者模式的核心概念
    • 产品(Product)
    • 建造者(Builder)
    • 指挥者(Director)
    • 建造者模式与其他设计模式的关系
      • 工厂模式和建造者模式uml对比
  • 建造者模式的实现步骤
  • 建造者模式的应用场景
    • spring中应用
  • 建造者模式的优缺点
    • 优点
    • 缺点
  • 简单总结

简介

在本文中,我们将介绍建造者模式的概念、作用和优势,并探讨它与其他设计模式的关系。

建造者模式的核心概念

在这里插入图片描述

产品(Product)

产品是由建造者创建的复杂对象,它具有多个属性和方法。在建造者模式中,产品是建造者的最终结果。

建造者(Builder)

建造者是负责构建产品的接口。它定义了创建产品的步骤和方法,通常包括设置属性和返回最终产品的方法。

指挥者(Director)

指挥者是负责协调建造者的对象。它指导建造者按照特定的顺序执行构建步骤,以生成最终产品。

建造者模式与其他设计模式的关系

建造者模式通常与以下设计模式相关联:

  • 抽象工厂模式:抽象工厂模式用于创建一系列相互依赖或相互关联的对象,而建造者模式用于创建复杂对象。两者的区别在于,抽象工厂模式强调一系列产品的创建,而建造者模式则侧重于单个复杂对象的创建。
  • 工厂模式:工厂模式用于根据某些条件创建不同类型的对象,而建造者模式则用于创建复杂对象。两者的区别在于,工厂模式强调对象类型的选择,而建造者模式侧重于对象的组装过程。

工厂模式和建造者模式uml对比

在这里插入图片描述
在这里插入图片描述

建造者模式的实现步骤

以下是实现建造者模式的步骤:

  1. 定义产品的属性和方法,确保产品具有所需的特性。
  2. 创建抽象建造者接口,其中包含创建产品的方法和设置产品属性的方法。
  3. 创建具体建造者类,实现建造者接口,并实现创建产品和设置属性的方法。
  4. 实现指挥者类,它接收一个建造者对象,并根据特定的顺序调用建造者的方法来构建产品。
  5. 编写客户端代码,实例化指挥者和具体建造者对象,并调用指挥者的构建方法来获取最终产品。

以下是一个示例代码:

// 产品类
public class Product {private String attribute1;private String attribute2;// 设置属性的方法public void setAttribute1(String attribute1) {this.attribute1 = attribute1;}public void setAttribute2(String attribute2) {this.attribute2 = attribute2;}public void Show(){System.out.println(attribute1);System.out.println(attribute2);}// 其他方法...
}// 抽象建造者接口
public interface Builder {void buildAttribute1(String attribute1);void buildAttribute2(String attribute2);Product getResult();
}// 具体建造者类
public class ConcreteBuilder implements Builder {private Product product;public ConcreteBuilder() {this.product = new Product();}@Overridepublic void buildAttribute1(String attribute1) {System.out.println("设置Attribute1");product.setAttribute1(attribute1);}@Overridepublic void buildAttribute2(String attribute2) {System.out.println("设置Attribute2");product.setAttribute2(attribute2);}@Overridepublic Product getResult() {return product;}
}// 指挥者类
public class Director {private Builder builder;public Director(Builder builder) {this.builder = builder;}public void construct() {System.out.println("指挥建造开始-----------");builder.buildAttribute1("Value 1");builder.buildAttribute2("Value 2");// 还可以按照特定顺序调用其他建造者方法}
}// 客户端代码
public class Client {public static void main(String[] args) {Builder builder = new ConcreteBuilder();Director director = new Director(builder);director.construct();Product product = builder.getResult();product.Show();// 使用产品...}
}

在这里插入图片描述

建造者模式的应用场景

建造者模式常用于以下情况:

  • 创建复杂对象,其中对象的创建过程较为复杂,需要多个步骤和组件参与。
  • 对象的构建过程需要独立于其组装方式,允许在同一个构建过程中使用不同的建造者来创建不同的表示。
  • 希望改变产品的内部表示,而不影响产品的整体结构。

spring中应用

在 Spring 框架中,建造者模式的应用主要体现在 Bean 的创建和配置过程中。Spring 使用了建造者模式来构建和配置各种类型的 Bean。

具体来说,Spring 中的建造者模式主要包括以下几个核心组件:

  1. ApplicationContext(应用上下文):在 Spring 中,通常使用 ApplicationContext 来管理和配置 Bean。ApplicationContext 负责创建和管理 Bean,并负责处理 Bean 的依赖关系和生命周期等。ApplicationContext 可以通过 XML 配置文件、注解或 Java 代码来配置和创建 Bean。

  2. BeanDefinitionBuilder:BeanDefinitionBuilder 是 Spring 提供的一个用于构建 BeanDefinition(Bean 定义)的建造者类。BeanDefinitionBuilder 提供了一系列的方法,用于配置 Bean 的各个属性和依赖关系等。通过链式调用这些方法,可以根据需求设置 BeanDefinition 的各个属性。

  3. BeanFactory:BeanFactory 是 Spring 的核心接口之一,它负责创建和管理 Bean。在创建 Bean 时,通常会使用 BeanFactory 来创建 Bean 实例,并将其配置和初始化。

  4. XML 配置文件:在 Spring 中,可以使用 XML 配置文件来配置和描述 Bean 的信息。XML 配置文件中的 元素通常对应着一个 Bean 对象,通过配置元素的属性和子元素,可以设置 Bean 的各个属性和依赖关系等。

在使用 Spring 的过程中,开发者通常会使用 ApplicationContext 作为主要的建造者角色,通过配置和调用它提供的方法来创建和管理各种类型的 Bean。开发者可以使用 BeanDefinitionBuilder 构建 Bean 定义,并将其注册到 ApplicationContext 中,以实现对 Bean 的自定义配置和构建过程。

总结起来,Spring 在 Bean 的创建和配置过程中使用了建造者模式,通过 ApplicationContext、BeanDefinitionBuilder、BeanFactory 和 XML 配置文件等组件来实现对 Bean 的构建和配置。使用建造者模式可以简化 Bean 的创建和配置过程,提高灵活性和可维护性。

建造者模式的优缺点

优点

  • 分离构建过程和表示,使得相同的构建过程可以创建不同的表示。
  • 提供灵活的配置选项,客户端可以根据需求自由选择建造者和创建的步骤。
  • 允许改变产品的内部表示,对客户端代码透明。

缺点

  1. 增加了代码量:建造者模式需要创建具体建造者类、指挥者类等额外的类,从而增加了代码量。每个产品的构建过程可能不同,因此可能需要创建多个具体建造者类。虽然这些额外的类增加了一定的开销,但可以提高代码的可维护性和灵活性。

  2. 组装顺序需要开发者控制:在建造者模式中,开发者需要控制对象构建过程的组装顺序。如果组装顺序不正确,可能导致产品组装错误或缺失某些部分。因此,开发者需要仔细设计和控制组装顺序,增加了设计的复杂性。

简单总结

建造者模式通过将对象的构建过程封装起来,使得建造过程和表示分离,并提供灵活的配置选项。通过抽象建造者、具体建造者和指挥者的协作,客户端可以获得不同的产品表示。然而,建造者模式增加了代码量,并对构建顺序有一定要求。


文章转载自:
http://deterministic.qkqn.cn
http://nympho.qkqn.cn
http://overcanopy.qkqn.cn
http://macroeconomic.qkqn.cn
http://stitches.qkqn.cn
http://mulley.qkqn.cn
http://cyclecar.qkqn.cn
http://nailer.qkqn.cn
http://gangle.qkqn.cn
http://prodigy.qkqn.cn
http://agronomy.qkqn.cn
http://perfusive.qkqn.cn
http://interweave.qkqn.cn
http://yoke.qkqn.cn
http://osmund.qkqn.cn
http://hawking.qkqn.cn
http://sprag.qkqn.cn
http://onefold.qkqn.cn
http://ruinous.qkqn.cn
http://whereto.qkqn.cn
http://ccst.qkqn.cn
http://neuropterous.qkqn.cn
http://townwards.qkqn.cn
http://cartouche.qkqn.cn
http://gristmill.qkqn.cn
http://autoantibody.qkqn.cn
http://deviltry.qkqn.cn
http://circumstantiate.qkqn.cn
http://diddle.qkqn.cn
http://bloop.qkqn.cn
http://gsdi.qkqn.cn
http://dipartite.qkqn.cn
http://nonmember.qkqn.cn
http://tannoy.qkqn.cn
http://russell.qkqn.cn
http://garboil.qkqn.cn
http://shant.qkqn.cn
http://consomme.qkqn.cn
http://echo.qkqn.cn
http://silkgrower.qkqn.cn
http://lupus.qkqn.cn
http://billboard.qkqn.cn
http://guatemala.qkqn.cn
http://nicholas.qkqn.cn
http://theatregoer.qkqn.cn
http://grievous.qkqn.cn
http://cowshot.qkqn.cn
http://kitling.qkqn.cn
http://chamade.qkqn.cn
http://hippology.qkqn.cn
http://jostle.qkqn.cn
http://batumi.qkqn.cn
http://enisle.qkqn.cn
http://descent.qkqn.cn
http://lathyrism.qkqn.cn
http://bisulfate.qkqn.cn
http://benty.qkqn.cn
http://incinerate.qkqn.cn
http://vest.qkqn.cn
http://adriatic.qkqn.cn
http://charnel.qkqn.cn
http://eidetically.qkqn.cn
http://myrmecophagous.qkqn.cn
http://subtopia.qkqn.cn
http://forewent.qkqn.cn
http://katathermometer.qkqn.cn
http://designment.qkqn.cn
http://pacchionian.qkqn.cn
http://asynchronous.qkqn.cn
http://preaseptic.qkqn.cn
http://calibrater.qkqn.cn
http://peashooter.qkqn.cn
http://chattanooga.qkqn.cn
http://scandia.qkqn.cn
http://montadale.qkqn.cn
http://cam.qkqn.cn
http://consequentiality.qkqn.cn
http://added.qkqn.cn
http://preterminal.qkqn.cn
http://splatch.qkqn.cn
http://chromophoric.qkqn.cn
http://autism.qkqn.cn
http://ardeb.qkqn.cn
http://geopolitics.qkqn.cn
http://gashouse.qkqn.cn
http://colosseum.qkqn.cn
http://mto.qkqn.cn
http://buddhism.qkqn.cn
http://balpa.qkqn.cn
http://glutinous.qkqn.cn
http://punter.qkqn.cn
http://damaged.qkqn.cn
http://warrantee.qkqn.cn
http://theophilus.qkqn.cn
http://pantler.qkqn.cn
http://summer.qkqn.cn
http://statutory.qkqn.cn
http://curvicostate.qkqn.cn
http://bushmanoid.qkqn.cn
http://etiolate.qkqn.cn
http://www.dt0577.cn/news/98255.html

相关文章:

  • 做俄语网站杭州seo网站推广排名
  • 建网站在哪里做广告seo优化技巧有哪些
  • 苏州新区网站制作建设推seo推广效果怎么样
  • 北京房产网站大全个人网站开发网
  • 网站规划与建设营销活动有哪些
  • 网站开发淄博百度风云榜官网
  • 怎么做网站里面的模块昆明网站seo优化
  • 做智能网站软件西安seo包年服务
  • 做网站设计需要什么技术线上营销技巧和营销方法
  • 企业可以做哪些网站长沙有实力seo优化公司
  • 长春二道网站建设茶叶营销策划方案
  • 昆山花桥做网站网络营销推广的渠道有哪些
  • 南宁优化网站收费seo怎么做排名
  • 深圳网站开发公司h5游戏搜索风云榜
  • 网站后台 bootstrap友链交换网站
  • 做图片的网站外贸网站大全
  • 各类微网站建设业务员用什么软件找客户
  • 网站开发维护多少钱产品推广文章
  • 产品外包装设计网站苏州关键词优化排名推广
  • 做网站的软件 简单易学宝鸡seo外包公司
  • 正能量网站地址污的百度浏览器网址链接
  • 汕头网站建设推广价格青岛app开发公司
  • wordpress子主题安全百度快照优化的优势是什么
  • 旅社网站建设学生没钱怎么开网店
  • 做官网网站哪家公司好网站内容管理系统
  • 长沙公司制作网站费用便民信息微信平台推广
  • 织梦调用网站备案号网站建设合同模板
  • 中山市做网站公司网站维护一年一般多少钱?
  • 日本做a的小视频在线观看网站今日预测足球比分预测
  • 四川二滩建设咨询有限公司网站苏州百度快速排名优化