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

外贸网站设计师天津河东区网站建设

外贸网站设计师,天津河东区网站建设,金华网站建设哪里好,贷款引流推广平台建造者模式#xff0c;又称生成器模式#xff0c;是一种对象构建模式。它主要用于构建复杂对象#xff0c;通过将复杂对象的构建过程与其表示分离#xff0c;使得同样的构建过程可以创建出具有不同表示的对象。该模式的核心思想是将一个复杂对象的构建过程分解为多个简单的… 建造者模式又称生成器模式是一种对象构建模式。它主要用于构建复杂对象通过将复杂对象的构建过程与其表示分离使得同样的构建过程可以创建出具有不同表示的对象。该模式的核心思想是将一个复杂对象的构建过程分解为多个简单的步骤并允许用户通过指定复杂对象的类型和内容来构建它们而无需知道对象内部的具体构建细节。 一、核心思想 建造者模式的核心思想是将复杂对象的构建过程与它的表示分离使得构建过程可以灵活地组合而不会影响最终的产品表示。这有助于创建一个逐步构建的复杂对象同时隐藏其内部构造细节。 二、定义与结构 定义建造者模式是一种创建型设计模式它允许将一个复杂对象的构建与其表示分离使得同样的构建过程可以创建不同的表示。通过将对象的构建过程分解为一系列步骤由不同的建造者类来实现这些步骤最后由指挥者类来统筹构建流程以得到最终的复杂对象。结构 产品Product即要构建的复杂对象它具有多个组成部分这些部分通常由建造者逐步构建完成。例如上述的定制电脑它就是产品包含 CPU、内存等各种硬件组件作为其内部属性。抽象建造者Abstract Builder定义了构建产品各个部分以及返回最终产品的抽象方法为具体建造者提供统一的接口规范。比如定义了安装 CPU、安装内存等抽象操作方法。具体建造者Concrete Builder实现抽象建造者接口负责按照特定的需求实际构建产品的各个部分并在最后返回构建完成的产品。例如高性能电脑建造者会选择高端的 CPU、大容量内存来组装电脑。指挥者Director负责指挥和协调建造者的构建步骤它知晓构建产品所需的完整流程通过调用建造者的方法来实现产品的构建但它并不负责具体的构建细节只是掌控构建的节奏。比如指挥者决定先安装哪个部件后安装哪个部件。 角色 产品角色Product作为建造的目标对象它承载了复杂对象的所有属性和状态是建造者们努力打造的成果通常是一个包含多个成员变量的类这些变量代表了对象的不同组成部分。抽象建造者角色Abstract Builder作为建造者的抽象模板规定了构建产品必须实现的一组抽象方法这些方法涵盖了从基础部件安装到最终产品组装成型的各个环节为具体建造者的实现提供了方向指引。具体建造者角色Concrete Builder依据抽象建造者的蓝图深入到实际构建工作的第一线根据特定的设计要求或用户需求精心挑选合适的部件运用专业的技术将一个个零散的部件逐步组装成完整的产品并且能够将最终成果交付给客户端。指挥者角色Director站在更高的层面统筹规划它熟悉整个构建流程的最优顺序通过向具体建造者下达精准的指令协调各个建造者之间的工作衔接确保复杂对象能够高效、有序地构建完成虽然不直接参与物理构建但却掌控着构建的全局节奏。 三、实现步骤及代码示例以构建一个网页表单为例 首先定义产品 // 产品网页表单 public class WebForm {private String formTitle;private String formFields;private String submitButtonText;public WebForm(String formTitle, String formFields, String submitButtonText) {this.formTitle formTitle;this.formFields formFields;this.submitButtonText submitButtonText;}// 省略 getters 和 setters方便展示主要逻辑Overridepublic String toString() {return WebForm{ formTitle formTitle \ formFields formFields \ submitButtonText submitButtonText \ };} }接着定义抽象建造者 // 抽象建造者网页表单建造者 public abstract class WebFormBuilder {protected WebForm webForm;public WebForm getWebForm() {return webForm;}public abstract void buildFormTitle();public abstract void buildFormFields();public abstract void buildSubmitButtonText(); }然后创建具体建造者 // 具体建造者登录表单建造者 public class LoginFormBuilder extends WebFormBuilder {Overridepublic void buildFormTitle() {webForm new WebForm(Login Form, , );}Overridepublic void buildFormFields() {webForm.setFormFields(Username: input typetext nameusernamebrPassword: input typepassword namepassword);}Overridepublic void buildSubmitButtonText() {webForm.setSubmitButtonText(Login);} }// 具体建造者注册表单建造者 public class RegistrationFormBuilder extends WebFormBuilder {Overridepublic void buildFormTitle() {webForm new WebForm(Registration Form, , );}Overridepublic void buildFormFields() {webForm.setFormFields(Username: input typetext nameusernamebrPassword: input typepassword namepasswordbrEmail: input typeemail nameemail);}Overridepublic void buildSubmitButtonText() {webForm.setSubmitButtonText(Register);} }再定义指挥者 // 指挥者表单指挥者 public class FormDirector {private WebFormBuilder webFormBuilder;public FormDirector(WebFormBuilder webFormBuilder) {this.webFormBuilder webFormBuilder;}public WebForm construct() {webFormBuilder.buildFormTitle();webFormBuilder.buildFormFields();webFormBuilder.buildSubmitButtonText();return webFormBuilder.getWebForm();} }最后在客户端代码中使用 public class Main {public static void main(String[] args) {// 构建登录表单LoginFormBuilder loginFormBuilder new LoginFormBuilder();FormDirector formDirector new FormDirector(loginFormBuilder);WebForm loginForm formDirector.construct();System.out.println(loginForm);// 构建注册表单RegistrationFormBuilder registrationFormBuilder new RegistrationFormBuilder();formDirector new FormDirector(registrationFormBuilder);WebForm registrationForm formDirector.construct();System.out.println(registrationForm);} }四、常见技术框架应用代码示例 建造者模式Builder Pattern是一种创建型设计模式它通过将复杂对象的构建过程与其表示分离使得同样的构建过程可以创建不同的表示。这种模式的优点在于能够分步骤构建复杂对象而无需关注这些部分的具体组装过程从而提高了代码的灵活性和可扩展性。关于建造者模式在技术框架中的应用虽然具体的应用场景可能因框架而异但以下是一些常见的技术框架和领域中建造者模式的应用示例 Java EE和Spring框架 在Java EE和Spring等企业级应用框架中建造者模式常用于构建具有复杂属性和依赖关系的对象。例如在构建数据库连接池、消息队列连接等复杂对象时可以使用建造者模式来逐步设置对象的属性并最终返回一个配置好的实例。 Web开发框架 在Web开发中建造者模式常用于构建HTTP请求和响应对象。这些对象通常包含多个属性和配置选项如URL、请求方法、头信息、请求体等。通过建造者模式可以逐步设置这些属性而不是在构造函数中一次性传递所有参数。 图形用户界面GUI框架 在构建复杂的GUI组件时如窗口、按钮、文本框等建造者模式可以帮助开发者逐步设置组件的属性如大小、位置、颜色等。这样不仅可以提高代码的可读性还可以使组件的创建过程更加灵活和可扩展。 游戏开发框架 在游戏开发中建造者模式常用于构建游戏中的角色、道具、场景等复杂对象。通过建造者模式可以逐步设置这些对象的属性如生命值、攻击力、防御力等并最终生成一个完整的游戏对象。 配置和初始化框架 在一些配置和初始化框架中建造者模式常用于构建配置对象。这些配置对象通常包含多个配置项和依赖关系通过建造者模式可以逐步设置这些配置项并最终生成一个配置好的实例。 在 Android 开发中AlertDialog 的创建就运用了类似建造者模式的思想。 import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface;public class DialogBuilderExample {public static void main(String[] args) {Context context null; // 实际开发中需替换为有效的上下文AlertDialog.Builder builder new AlertDialog.Builder(context);builder.setTitle(提示).setMessage(这是一个示例对话框).setPositiveButton(确定, new DialogInterface.OnClickListener() {Overridepublic void onClick(DialogInterface dialog, int which) {// 点击确定按钮的处理逻辑}}).setNegativeButton(取消, new DialogInterface.OnClickListener() {Overridepublic void onClick(DialogInterface dialog, int which) {// 点击取消按钮的处理逻辑}});AlertDialog dialog builder.create();dialog.show();} }这里AlertDialog.Builder 相当于具体建造者它逐步构建 AlertDialog产品的各个部分如标题、消息内容、按钮等而我们不需要关心 AlertDialog 内部复杂的创建和初始化过程只需按照需求配置各个部件即可最后通过 create 方法得到完整的对话框并展示。 五、应用场景 复杂对象构建当需要创建的对象具有大量的属性、复杂的初始化逻辑并且不同的属性组合会产生不同的功能或外观变体时建造者模式非常适用。比如构建一辆汽车涉及发动机、底盘、车身、内饰等多个复杂部件的选型与组装使用建造者模式可以清晰地划分构建步骤方便管理。对象构建过程需要精细控制如果对对象构建的顺序、步骤有严格要求建造者模式能确保构建过程按照预定的流程进行。例如在建筑施工中先打地基、再建主体、最后装修通过指挥者精确安排建造者的工作顺序保证建筑质量。创建对象的逻辑频繁变化当创建对象的逻辑需要经常调整比如根据不同的市场需求产品的配置、样式经常改变建造者模式将构建逻辑封装在建造者和指挥者类中修改时只需在相关类中进行不影响客户端使用。 六、优缺点 优点 构建过程与表示分离使得客户端不需要了解复杂对象的具体构建细节降低了耦合度客户端只需与指挥者和建造者的抽象接口交互即使构建过程变化也不影响客户端代码。精细控制构建过程通过指挥者可以精确安排构建步骤满足不同的构建需求确保复杂对象按照预期的方式构建提高构建质量。代码复用性高抽象建造者和具体建造者类可以在多个地方复用尤其是当有多种类似的复杂对象需要构建时复用建造者类能节省开发时间。例如不同风格的房屋建造可以复用基础的建造者类。便于维护和扩展当需要增加新的构建步骤、修改构建逻辑或创建新的复杂对象变体时只需在建造者和指挥者类中操作不会影响其他部分代码。如要给汽车增加自动驾驶功能模块只需在相关建造者类中添加构建步骤。 缺点 增加代码复杂性引入建造者模式会增加类的数量包括抽象建造者、具体建造者、指挥者以及产品类对于简单的对象创建场景会使代码显得过于繁琐。对开发人员要求较高要求开发人员熟悉建造者模式的结构和原理在设计和实现过程中需要合理规划各个角色的职责和交互否则容易导致代码混乱增加维护难度。 建造者模式为创建复杂对象提供了一种高效、灵活且易于维护的解决方案虽然在简单场景下可能略显繁琐但在应对复杂构建需求时能充分发挥其优势提升软件的质量和开发效率。
文章转载自:
http://www.morning.yfrbn.cn.gov.cn.yfrbn.cn
http://www.morning.mghgl.cn.gov.cn.mghgl.cn
http://www.morning.rkrl.cn.gov.cn.rkrl.cn
http://www.morning.khtjn.cn.gov.cn.khtjn.cn
http://www.morning.rldph.cn.gov.cn.rldph.cn
http://www.morning.jcfg.cn.gov.cn.jcfg.cn
http://www.morning.nmymn.cn.gov.cn.nmymn.cn
http://www.morning.hwnqg.cn.gov.cn.hwnqg.cn
http://www.morning.cpkcq.cn.gov.cn.cpkcq.cn
http://www.morning.xfhms.cn.gov.cn.xfhms.cn
http://www.morning.skmzm.cn.gov.cn.skmzm.cn
http://www.morning.xsbhg.cn.gov.cn.xsbhg.cn
http://www.morning.qklff.cn.gov.cn.qklff.cn
http://www.morning.fssmx.com.gov.cn.fssmx.com
http://www.morning.qttft.cn.gov.cn.qttft.cn
http://www.morning.kngx.cn.gov.cn.kngx.cn
http://www.morning.zrhhb.cn.gov.cn.zrhhb.cn
http://www.morning.lqffg.cn.gov.cn.lqffg.cn
http://www.morning.jwskq.cn.gov.cn.jwskq.cn
http://www.morning.fqssx.cn.gov.cn.fqssx.cn
http://www.morning.kzdgz.cn.gov.cn.kzdgz.cn
http://www.morning.ktpzb.cn.gov.cn.ktpzb.cn
http://www.morning.pjwml.cn.gov.cn.pjwml.cn
http://www.morning.fxwkl.cn.gov.cn.fxwkl.cn
http://www.morning.mmynk.cn.gov.cn.mmynk.cn
http://www.morning.prjns.cn.gov.cn.prjns.cn
http://www.morning.wrlqr.cn.gov.cn.wrlqr.cn
http://www.morning.lwzgn.cn.gov.cn.lwzgn.cn
http://www.morning.qbdqc.cn.gov.cn.qbdqc.cn
http://www.morning.ghxsn.cn.gov.cn.ghxsn.cn
http://www.morning.byrlg.cn.gov.cn.byrlg.cn
http://www.morning.qbrdg.cn.gov.cn.qbrdg.cn
http://www.morning.jiuyungps.com.gov.cn.jiuyungps.com
http://www.morning.bttph.cn.gov.cn.bttph.cn
http://www.morning.rgrz.cn.gov.cn.rgrz.cn
http://www.morning.xuejitest.com.gov.cn.xuejitest.com
http://www.morning.mhnrx.cn.gov.cn.mhnrx.cn
http://www.morning.wrbnh.cn.gov.cn.wrbnh.cn
http://www.morning.mfbcs.cn.gov.cn.mfbcs.cn
http://www.morning.jcnmy.cn.gov.cn.jcnmy.cn
http://www.morning.mnjyf.cn.gov.cn.mnjyf.cn
http://www.morning.xfmwk.cn.gov.cn.xfmwk.cn
http://www.morning.zdmrf.cn.gov.cn.zdmrf.cn
http://www.morning.kdldx.cn.gov.cn.kdldx.cn
http://www.morning.dyzbt.cn.gov.cn.dyzbt.cn
http://www.morning.jnzfs.cn.gov.cn.jnzfs.cn
http://www.morning.ldqrd.cn.gov.cn.ldqrd.cn
http://www.morning.zxznh.cn.gov.cn.zxznh.cn
http://www.morning.sjwiki.com.gov.cn.sjwiki.com
http://www.morning.bzfld.cn.gov.cn.bzfld.cn
http://www.morning.ydrn.cn.gov.cn.ydrn.cn
http://www.morning.bktzr.cn.gov.cn.bktzr.cn
http://www.morning.rsbqq.cn.gov.cn.rsbqq.cn
http://www.morning.trhlb.cn.gov.cn.trhlb.cn
http://www.morning.ghpld.cn.gov.cn.ghpld.cn
http://www.morning.bpds.cn.gov.cn.bpds.cn
http://www.morning.ycmpk.cn.gov.cn.ycmpk.cn
http://www.morning.cknws.cn.gov.cn.cknws.cn
http://www.morning.htsrm.cn.gov.cn.htsrm.cn
http://www.morning.mehrim.com.gov.cn.mehrim.com
http://www.morning.tkryt.cn.gov.cn.tkryt.cn
http://www.morning.qkcyk.cn.gov.cn.qkcyk.cn
http://www.morning.czqqy.cn.gov.cn.czqqy.cn
http://www.morning.ryjl.cn.gov.cn.ryjl.cn
http://www.morning.mumgou.com.gov.cn.mumgou.com
http://www.morning.drbd.cn.gov.cn.drbd.cn
http://www.morning.xgbq.cn.gov.cn.xgbq.cn
http://www.morning.gqmhq.cn.gov.cn.gqmhq.cn
http://www.morning.tzcr.cn.gov.cn.tzcr.cn
http://www.morning.tgczj.cn.gov.cn.tgczj.cn
http://www.morning.xflzm.cn.gov.cn.xflzm.cn
http://www.morning.hsflq.cn.gov.cn.hsflq.cn
http://www.morning.ggmls.cn.gov.cn.ggmls.cn
http://www.morning.ssjry.cn.gov.cn.ssjry.cn
http://www.morning.fgxr.cn.gov.cn.fgxr.cn
http://www.morning.rqlf.cn.gov.cn.rqlf.cn
http://www.morning.ywpwq.cn.gov.cn.ywpwq.cn
http://www.morning.bctr.cn.gov.cn.bctr.cn
http://www.morning.wqgr.cn.gov.cn.wqgr.cn
http://www.morning.fqlxg.cn.gov.cn.fqlxg.cn
http://www.tj-hxxt.cn/news/223119.html

相关文章:

  • 电子口岸网站做资料库石家庄住建局网站
  • 构建一个网站简答题网站建设步骤
  • 东莞市住房和城乡建设厅网站首页微网站设计与开发
  • 网站备案多久可以注销大型门户网站建设费用
  • 做一名优秀网站设计师计划设计大赛官网
  • 做网站sqlserver排序百度seo服务
  • 长春自主建站模板word wordpress
  • 做301跳转会影响之前网站排名吗奖励自己视频免费
  • 网站建设销售客户疑问重庆装修设计网站
  • 网站建设英语词汇微网站建设服务商
  • 东莞建网站郑州市建设局官网
  • 国企有没有必要建设网站山西两学一做网站
  • 建设一个购物网站需要多少钱阿里云服务器 wordpress
  • python做的网站源码服装网站模块方案
  • 山西网站建设公司网络科技公司名称
  • 如何建设网址导航网站做网站资金来源是什么
  • 网站正在建设中怎么办企业开源网站程序
  • 公考在哪个网站上做试题外贸平台实训总结
  • h5响应式网站建设代理公网主机上做的网站如果访问
  • 广东白云手机网站建设网站建设注册名有规范吗
  • 营销型企业网站全球速卖通的特点
  • 常州网站建设市场二手网站建设目标
  • 图片网站模版个人网站搭建
  • 专业制作网站 郑广告优化师是干嘛的
  • 网站设计网站设计公司价格自己做网站卖衣服
  • 福州网络营销网站长沙百姓网招聘
  • 支付网站建设费账务处理广州网站开发 英诺科技
  • 数字营销1+x网站最新网站信息
  • 网站建设wang1314广元建设公司网站
  • 注册网站刀具与钢材范围网站被host重定向处理