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

网站开发drupal贵州住房和城乡建设厅官方网站

网站开发drupal,贵州住房和城乡建设厅官方网站,龙岩兼职招聘最新发布,wordpress多页面在一个页面文章目录 引言建造者模式简介定义与用途实现方式#xff1a; 使用场景优势与劣势建造者模式在spring中的应用CD#xff08;光盘#xff09;的模拟示例UML 订单系统的模拟示例UML 代码地址 引言 建造者模式在创建复杂对象时展现出其强大的能力#xff0c;特别是当这些对象需… 文章目录 引言建造者模式简介定义与用途实现方式 使用场景优势与劣势建造者模式在spring中的应用CD光盘的模拟示例UML 订单系统的模拟示例UML 代码地址 引言 建造者模式在创建复杂对象时展现出其强大的能力特别是当这些对象需要通过多个步骤来构建时。这种模式使得对象的构造过程更加清晰、灵活同时还有助于保持创建逻辑的封装和代码的整洁。 建造者模式简介 定义与用途 建造者模式是一种创建型设计模式它允许将一个复杂对象的构建与其表示分离使得同样的构建过程可以创建不同的表示。这种模式常用于构建复杂对象特别是当这些对象的创建过程需要多个步骤时。 实现方式 建造者模式通常包括以下几个角色 Builder为创建一个产品对象的各个部件指定抽象接口。ConcreteBuilder实现Builder的接口以构造和装配该产品的各个部件。定义并明确它所创建的表示并提供一个检索产品的接口。Director构造一个使用Builder接口的对象。Product表示被构造的复杂对象。 使用场景 当需要生成的对象具有复杂的内部结构时。当需要生成的对象的属性相互依赖时。当创建对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 优势与劣势 优势 分离产品的构造和表示提供更好的控制过程。 更好的可扩展性可以更容易地改变一个对象的内部表示。劣势 增加了系统的复杂性需要定义多个Builder。 建造者模式在spring中的应用 在Spring框架中建造者模式并没有像单例模式或原型模式那样被显著地用作框架的基础结构。不过Spring确实提供了一些支持建造者模式的特性尤其是在配置和Bean的构建方面。以下是Spring中建造者模式应用的一些例子 Spring的链式配置 Spring框架中的一些组件如RestTemplateBuilder、SpringApplicationBuilder等使用了建造者模式的思想允许开发者通过链式调用方法来配置对象。这种方式简化了对象的构造过程并使配置过程更加直观和易于理解。Bean的构建和配置 在Spring中尽管Bean的构建大多是基于工厂模式但可以利用建造者模式来构建复杂的Bean。特别是当Bean有多个属性需要配置且这些属性之间存在依赖关系时建造者模式可以提供更清晰和更可维护的方式来构建这些Bean。Fluent API设计 Spring 5 引入的WebFlux模块在其Fluent API中广泛采用了建造者模式使得构建反应式流和请求处理流水线更加直观和便捷。CD光盘的模拟示例 展示了如何使用建造者模式构建一个复杂的产品这里是CD包括其不同的品牌和包装。 UML 步骤 1 创建 Packing 接口 (Packing.java) 定义了产品CD的包装和定价的接口。这个接口提供了pack()和price()两个方法分别用于获取产品的包装信息和价格。 public interface Packing {public String pack();public int price(); }步骤 2 创建 CD 和 Company 抽象类 (CD.java 和 Company.java) CD 类实现了 Packing 接口提供了关于CD包装的基本实现。 Company 类继承自 CD 类增加了关于价格的抽象方法。这个类代表生产CD的不同公司。 public abstract class CD implements Packing {public abstract String pack(); }public abstract class Company extends CD{public abstract int price(); }步骤3 创建 Company 的具体实现类Sony 和 Samsung (Sony.java 和 Samsung.java) 这两个类提供了Sony和Samsung公司生产的CD的具体实现。它们覆盖了价格和包装的方法为Sony CD和Samsung CD分别提供了具体的价格和包装信息。 public class Samsung extends Company {Overridepublic int price() {return 15;}Overridepublic String pack() {return Samsung CD;}}public class Sony extends Company {Overridepublic int price() {return 20;}Overridepublic String pack() {return Sony CD;}}步骤4 创建 CDType 类 (CDType.java) 这个类管理一系列的CD产品。它使用一个列表来存储Packing类型的对象并提供了添加CD和显示CD信息的方法。 public class CDType {private ListPacking items new ArrayListPacking();public void addItem(Packing packs) {items.add(packs);}public void showItems() {for (Packing packing : items) {System.out.print(CD name : packing.pack());System.out.println(, Price : packing.price());}}}步骤5 创建 CDBuilder 类 (CDBuilder.java) 这个类充当建造者提供了构建特定品牌CD的方法。buildSonyCD和buildSamsungCD方法分别创建含有Sony和Samsung CD的CDType对象。 public class CDBuilder {public CDType buildSonyCD() {CDType cds new CDType();cds.addItem(new Sony());return cds;}public CDType buildSamsungCD() {CDType cds new CDType();cds.addItem(new Samsung());return cds;}} 步骤6 创建 BuilderDemo 类 (BuilderDemo.java) 这是一个演示类它使用CDBuilder来创建不同品牌的CD集合并展示这些CD的信息。 public class BuilderDemo {public static void main(String args[]) {CDBuilder cdBuilder new CDBuilder();CDType cdType1 cdBuilder.buildSonyCD();cdType1.showItems();CDType cdType2 cdBuilder.buildSamsungCD();cdType2.showItems();}}以上就是一个简单的建造者模式示例代码运行代码我们可以看到。 订单系统的模拟示例 以上例子比较简单相信大家意犹未尽 因此我又找了一个更好了供大家品鉴 这个示例通过一个比萨饼和冷饮的订单系统展示了建造者模式在现实世界的应用。它允许用户根据自己的选择定制不同种类和大小的比萨饼和冷饮并在最后提供了一个总的订单和成本计算。这种方式使得订单的创建过程变得灵活且结构化同时也保持了代码的清晰和易于管理。 UML 由于代码比较多我就不粘贴了详情见github 代码地址 23种设计模式相关代码后续会逐步提交到github上方便学习欢迎指点 代码地址 https://github.com/RuofeiSun/lf-23Pattern
http://www.zqtcl.cn/news/194720/

相关文章:

  • 农业网站素材wordpress all in one
  • 学习网站建设有前景没wordpress 和dokuwiki
  • 服装网站开发方案网站设计美工排版编辑
  • 旅游网站首页模板下载广州市建设工程检测中心网站
  • 餐饮加盟网站建设wordpress 首行缩进
  • kkday是哪里做的网站橙云 php网站建设
  • 站长之家0网站规划作品
  • 物流公司网站建设系统规划广告设计怎么学
  • 异地备案 网站中信建设有限责任公司经济性质
  • 网站没有备案怎么申请广告宿迁莱布拉网站建设
  • 太原适合网站设计地址网站建设 教学视频教程
  • 建商城网站需要多少钱网站开发维护报价单
  • 唐山网站建设冀icp备婚纱网站页面设计
  • 做购物网站支付需要怎么做手机网站建设教程
  • 国外网站空间租用哪个好建站快车打电话
  • 自媒体网站 程序做药公司的网站前置审批
  • 简洁网站模板素材廊坊建设企业网站
  • 长沙建站找有为太极就治就网站内容如何自动关联新浪微博
  • 手机企业网站设计理念企业建设网站的步骤是什么?
  • 网站建设与管理视频网站推广的方法枫子
  • 苏州市住房和城乡建设局官方网站宠物之家网站开发
  • 建个人网站活字格能开发企业网站吗
  • php网站后台密码忘记做电子商务网站 语言
  • 网站建设策划师怎样进入国外网站
  • 建设银行商城网站浙江建站管理系统价格
  • 我想做个网站怎么做的常用的网络营销方法及效果
  • 南通专业做网站南宁网站建设mxfsem
  • 阿里巴巴电子商务网站建设目的网站专题素材
  • 浙江虎霸建设机械有限公司网站哪个网站做简历好
  • 网站做电商资质吗网站开发作品