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

网站开发实训安排织梦网站首页在哪里改

网站开发实训安排,织梦网站首页在哪里改,html制作简单的网页,wordpress页面属性全一、什么是建造者模式 建造者模式是一种创建型设计模式#xff0c;也叫生成器模式。 定义#xff1a;封装一个复杂对象构造过程#xff0c;并允许按步骤构造。 解释#xff1a;就是将复杂对象的创建过程拆分成多个简单对象的创建过程#xff0c;并将这些简单对象组合起来…一、什么是建造者模式 建造者模式是一种创建型设计模式也叫生成器模式。 定义封装一个复杂对象构造过程并允许按步骤构造。 解释就是将复杂对象的创建过程拆分成多个简单对象的创建过程并将这些简单对象组合起来构建出复杂对象。 二、角色组成 产品类Product表示被创建的复杂对象。它通常包含多个部分或者组成并由具体的建造者逐步构建而成。 抽象建造者类Builder定义了建造复杂对象所需要的各个部分的创建方法。它通常包括多个构建方法和一个返回产品的方法。 具体建造者类ConcreteBuilder实现Builder接口并提供各个部分或者组成的构建方法。 指挥者类Director负责控制建造者的构建顺序指挥建造者如何构建复杂对象。 三、优缺点 优点 灵活可以分步骤地构建复杂对象使得构建过程更加灵活。 解耦可以隔离复杂对象的创建和使用客户端不必关心对象的创建细节。 易扩展增加新的具体建造者很方便可以扩展构建器功能符合开闭原则。 缺点 增加工作量需要额外的代码来创建和管理具体建造者类增加了程序员的工作量。 效率低相比于其他创建型模式在运行时效率较低特别是对象太复杂时。 四、应用场景 4.1 生活场景 盒饭套餐顾客可以选择不同的菜服务员按照顾客的要求将这些菜组合起来最终构建出一个完整的套餐。 盖房子需要分多个阶段进行比如准备材料、打地基、盖围墙…。建造者模式可以将房屋的建造分解成多个步骤每个步骤对应一个具体的建造者最终由包工头指导者来调用不同的建造者完成整个房子的建造。 4.2 java场景 StringBuilder能够动态地构建字符串。 Stream API将集合类转为stream流通过一系列的中间操作和终止操作来生成最终结果。 Lombok的Builder注解一个注解就可以生成建造者模式的代码。五、代码实现 肯德徳都吃过吧里面有很多的套餐。假设套餐主要由汉堡、薯条和饮料三种组成每个组件都有不同种类和大小并且每个套餐的组合方式也不同。下面以肯德徳套餐为例解释建造者模式。 产品类Meal 抽象建造者类MealBuilder 具体建造者类BeefBurgerMealBuilder、ChickenMealBuilder、ShrimpMealBuilder 指挥者类MealDirector 5.1 产品类Product /*** * 1.产品类Product*/ Data public class Meal {//汉堡包private String burger;//薯条private String fries;//饮料private String drink; }5.2 抽象建造者Builder /*** * 2.抽象建造者Builder*/ public abstract class MealBuilder {protected Meal mealnew Meal();//构建汉堡public abstract void buildBurger();//构建薯条public abstract void buildFries();//构建饮料public abstract void buildDrink();public Meal getMeal(){return meal;} }5.3 具体构建者ConcreteBuilder /**** 3.具体建造者ConcreteBuilder)鸡肉汉堡套餐*/ public class ChickenMealBuilder extends MealBuilder{Overridepublic void buildBurger() {meal.setBurger(鸡肉汉堡);}Overridepublic void buildFries() {meal.setFries(中份薯条);}Overridepublic void buildDrink() {meal.setDrink(大杯果汁);} }/*** * 3.具体建造者ConcreteBuilder)牛肉汉堡套餐*/ public class BeefBurgerMealBuilder extends MealBuilder {Overridepublic void buildBurger() {meal.setBurger(牛肉汉堡);}Overridepublic void buildFries() {meal.setFries(大份薯条);}Overridepublic void buildDrink() {meal.setDrink(中杯可乐);} } /*** * 3.具体建造者ConcreteBuilder)虾肉汉堡套餐*/ public class ShrimpMealBuilder extends MealBuilder {Overridepublic void buildBurger() {meal.setBurger(虾肉汉堡);}Overridepublic void buildFries() {meal.setFries(小份薯条);}Overridepublic void buildDrink() {meal.setDrink(大杯芬达);} }5.4 指导者Director /*** * 4.指导者Director*/ public class MealDirector {private MealBuilder mealBuilder;public void setMealBuilder(MealBuilder mealBuilder){this.mealBuildermealBuilder;}public Meal getMeal(){return mealBuilder.getMeal();}//制作套餐public void constructMeal(){mealBuilder.buildBurger();mealBuilder.buildFries();mealBuilder.buildDrink();} } 5.5 testBuilder /*** * 建造者模式测试类*/ SpringBootTest public class TestBuilder {Testvoid testBuilder(){//创建指导者MealDirector directornew MealDirector();//执导建造牛肉套餐director.setMealBuilder(new BeefBurgerMealBuilder());director.constructMeal();Meal meal director.getMeal();System.out.println(牛肉套餐meal.toString());//鸡肉套餐director.setMealBuilder(new ChickenMealBuilder());director.constructMeal();Meal meal2 director.getMeal();System.out.println(鸡肉套餐meal2.toString());//虾肉套餐director.setMealBuilder(new ShrimpMealBuilder());director.constructMeal();Meal meal3 director.getMeal();System.out.println(虾肉套餐meal3.toString());} }根据不同的需求建造者模式可以构造出不同的套餐对象。每个套餐的构建过程都由不同的建造者实现在构建过程中可定制相应的属性。最终因为套餐的构建过程和表示分离所以同样的构建过程可以创建出不同的表示。 六、总结 使用场景 当需要创建一些特定的对象但是它们拥有共同的组成部分时比如一个房子可以由个个部件框架、墙、窗户等这些部件可以组合起来构造完整的房子。 当对象的构建过程比较复杂且需要多个步骤时例如创建一份电子商务订单需要多个步骤如选择商品、填写地址和支付等这些步骤可以被分别封装成为订单构建器中的不同方法。 当需要创建一些特定类型的对象例如复杂的数据结构或配置对象时这在编写配置文件解析器以及通用数据结构如二叉树等时很有用。 建造者模式也可以被用于通过更高级的方式来构建复杂对象例如序列化和反序列化。 与抽象工厂模式的区别 抽象工厂模式强调的是产品族的创建即相关的产品一起被创建出来而建造者模式强调的是一个复杂对象的创建即它的各个部分逐步被创建出来。
http://www.hkea.cn/news/14357813/

相关文章:

  • 扬州广陵城乡建设局网站深圳品牌网站建设服务
  • 为什么建设旅游网站底湘西网站建设
  • 一台云服务器做多个网站中文网站建设哪家好
  • 网站导航栏全屏怎么做济南建设信息网官网
  • 泰兴网站建设价格官方网站下载免费app
  • 为什么要给企业建设网站百度推广助手app
  • 在哪些网站能接到活做装修公司网站开发
  • 网站建设最关键的两个素材pico笔克品牌介绍
  • 绵阳企业品牌网站建设深圳市南山区住房和建设局
  • 个人网站怎么做详情页软文写作500字
  • 网站设计合同附件珠市口网站建设
  • 商务网站建设的第一步个人电子商务网站建设方案
  • 怎么对网站的数据库做管理wordpress优化图片分离
  • 网站建设网络推广公司一键生成器
  • 公司专业设计网站怎么做会员积分网站
  • 做网站的费用入账厦门市建设局网站首页
  • 网站策划哪里找企业邮箱注册申请需要付费吗
  • 代理 网站前置审批网站当地备案
  • 企业管理10大系统seo推广代理
  • 诸城做网站的公司影视公司招聘
  • 做家乡网站源代码wordpress采集英文
  • 网站开发中如何设计验证码广东网站制作多少钱
  • 如何建网站服务器jspajax网站开发典型实例
  • 网站开发与设计难嘛北京做网站比较有名的公司有哪些
  • 菏泽机关建设网站wordpress 附件显示设置
  • 有网站加金币的做弊器吗专门做app的网站
  • 网站建设推广好做吗seo刷关键词排名软件
  • 志愿海南网站新乡手机网站建设哪家好
  • 麻花星空影视传媒制作公司网站四川省建设厅官网信息查询平台
  • 免费微网站系统源码设置引擎营销是用户主导的网络营销方式