iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java如何实现生成器模式
  • 182
分享到

java如何实现生成器模式

java 2023-05-30 22:05:26 182人浏览 独家记忆
摘要

这篇文章主要为大家展示了“java如何实现生成器模式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java如何实现生成器模式”这篇文章吧。定义:    &

这篇文章主要为大家展示了“java如何实现生成器模式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java如何实现生成器模式”这篇文章吧。

定义:

        将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。生成器模式利用一个导演者对象和具体建造者对象一个一个地建造出所有的零件,从而建造出完整的对象。

四个要素:

        Builder:生成器接口,定义创建一个Product对象所需要的各个部件的操作。
        ConcreteBuilder:具体的生成器实现,实现各个部件的创建,并负责组装Product对象的各个部件,同时还提供一个让用户获取组装完成后的产品对象的方法。
        Director:指导者,也被称导向者,主要用来使用Builder接口,以一个统一的过程来构建所需要的Product对象。
        Product:产品,表示被生成器构建的复杂对象,包含多个部件。

示例:

        网上有用KFC的例子来描述生成器模式,比较通俗易懂。
        假设KFC推出两种套餐:奥尔良鸡腿堡套餐和香辣鸡腿堡套餐。
        奥尔良套餐包括:一个奥尔良鸡腿堡、一个炸鸡翅、一杯雪碧。
        鸡腿堡套餐包括:一个香辣鸡腿堡、一份薯条、一杯可乐。
        每份套餐都是:主食、副食、饮料。

        KFC服务员要根据顾客的要求来提供套餐,那这个需求里面什么是固定的,什么是变化的呢?很明显顾客都是要的套餐,顾客的目的是一样的。 套餐里面都是主食、副食、饮料,这也是固定的。至于主食是什么、副食是什么、饮料是什么,这个是变化的。

        在实际的软件开发过程中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象采用一定的组合构成,由于需求的变化,这个复杂对象的各个部分或者其子对象经常要变化(例如,鸡腿堡套餐的顾客不喜欢可乐,要换奶茶),但是他们的结构却相对稳定(套餐都得是一份主食,副食及饮料)。当遇到这种场景时,使用生成器模式比较合适。

定义一个产品类:

public class Entity1{...}public class Entity2{...}public class Entity3{...}public class Product{   Entity1 entity1;   Entity2 entity2;   Entity3 entity3;}

产品类中的各个小模块是不一样的,由他们建造组成产品。
根据具体场景要求,定义n个生成器类:

public interface IBuild{     public void createEntity1();     public void createEntity2();     public void createEntity3();     public Product composite();     public Product create();  }public class BuildProduct implements IBuild{   Product p = new Product();   public void createEntity1(){    //p.entity1 = ...    }      public Product create(){      return composite();   }    ......}public class BuildProduct1 implements IBuild{   Product p = new Product();               public void createEntity1(){         //p.entity1 = ...    }    ......}

定义一个指挥者类,统一调度project:

public class Director{    private IBuild build;   public Director(IBuild build){       this.build = buid;    }      public Product build(){      build.create();   }      public static void main(){     IBuild build = new BuildProduct();     Director direcotr = new Director(build);     Prodcut p = director.build();     }}

优点:

        1、使用生成器模式可以使客户端不必知道产品内部组成的细节。
        2、具体的建造者类之间是相互独立的,对系统的扩展非常有利。
        3、由于具体的建造者是独立的,因此可以对建造过程逐步细化,而不对其他的模块产生任何影响。

缺点:

        建造者模式的“加工工艺”是暴露的,这样使得建造者模式更加灵活,也使得工艺变得对客户不透明。(待考证,笔者这里不是很理解,欢迎说自己的见解)

应用场景:

        1、需要生成一个产品对象有复杂的内部结构。每一个内部成分本身可以是对象,也可以使一个对象的一个组成部分。
        2、需要生成的产品对象的属性相互依赖。建造模式可以强制实行一种分步骤进行的建造过程。
        3、在对象创建过程中会使用到系统中的其他一些对象,这些对象在产品对象的创建过程中不易得到

以上是“java如何实现生成器模式”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: java如何实现生成器模式

本文链接: https://www.lsjlt.com/news/221677.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java如何实现生成器模式
    这篇文章主要为大家展示了“java如何实现生成器模式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java如何实现生成器模式”这篇文章吧。定义:    &...
    99+
    2023-05-30
    java
  • python如何实现生成器表达式
    小编给大家分享一下python如何实现生成器表达式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!生成器表达式Python中的生成器是创建迭代器的一种简便方法。因为...
    99+
    2023-06-27
  • C#设计模式实现之生成器模式和责任链模式
    目录生成器设计类图: 实现代码:优点:用途与缺点:责任链设计类图:实现代码:优点:用途和缺点:总结生成器 生成器模式:封装一个产品的构造过程,并允许按步骤构造。 现又一个...
    99+
    2024-04-02
  • python如何实现字典生成式
    这篇文章主要介绍了python如何实现字典生成式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。字典生成式除了列表解析式和集合推导式外,解析式特征还可用于字典数据类型的创建。d...
    99+
    2023-06-27
  • java如何实现适配器模式
    这篇文章将为大家详细讲解有关java如何实现适配器模式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。适配器(Adapter)模式:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不...
    99+
    2023-05-31
    java
  • java如何实现迭代器模式
    这篇文章主要介绍java如何实现迭代器模式,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。类型:行为类模式类图:如果要问java中使用最多的一种...
    99+
    2023-05-30
    java
  • .Net设计模式之建造者、生成器模式怎么实现
    这篇文章主要讲解了“.Net设计模式之建造者、生成器模式怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.Net设计模式之建造者、生成器模式怎么实现”吧!一、动机(Motivation...
    99+
    2023-06-30
  • Java如何实现验证码生成
    这篇文章主要介绍了Java如何实现验证码生成,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。验证码大家都知道,它的作用也不用我多说了吧。如果不太清楚请参见百度百科中的解释,一般...
    99+
    2023-05-30
    java
  • python如何实现生成器
    这篇文章主要介绍了python如何实现生成器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。生成器注意区分列表推导式,生成器效率更高>&...
    99+
    2024-04-02
  • java如何实现代理模式
    小编给大家分享一下java如何实现代理模式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象...
    99+
    2023-05-30
    java
  • java如何实现桥接模式
    这篇文章将为大家详细讲解有关java如何实现桥接模式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。介绍桥接模式 (Bridge)将抽象部分与实现部分分离,使它们都可以独立的变化。桥接模式是一种结构式模式。...
    99+
    2023-05-30
    java
  • java策略模式如何实现
    本篇内容介绍了“java策略模式如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 刘备要到江东娶老婆了,走之前诸葛亮给赵云(...
    99+
    2023-06-19
  • java如何实现组合模式
    小编给大家分享一下java如何实现组合模式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!介绍组合模式又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素...
    99+
    2023-05-30
    java
  • java如何实现原型模式
    这篇文章主要介绍了java如何实现原型模式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。定义:      &nbs...
    99+
    2023-05-30
    java
  • java单例模式如何实现
    本篇内容主要讲解“java单例模式如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java单例模式如何实现”吧!0x01 宫女请安在朕的后宫中,皇后当之无愧的是天下第一(朕只能当...
    99+
    2023-06-19
  • Java代理模式如何实现
    这篇文章主要介绍“Java代理模式如何实现”,在日常操作中,相信很多人在Java代理模式如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java代理模式如何实现”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-19
  • java设计模式中如何实现单例模式
    这篇文章将为大家详细讲解有关java设计模式中如何实现单例模式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。下面是一个简单的小实例://简单懒汉式 public class ...
    99+
    2023-05-30
    java
  • Java设计模式的单例模式如何实现
    这篇文章主要介绍了Java设计模式的单例模式如何实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java设计模式的单例模式如何实现文章都会有所收获,下面我们一起来看看吧。单例模式单例模式顾名思义就是单一的实例...
    99+
    2023-06-29
  • Java设计模式的桥接模式如何实现
    本文小编为大家详细介绍“Java设计模式的桥接模式如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java设计模式的桥接模式如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是桥接模式桥接(Bri...
    99+
    2023-07-06
  • Java设计模式之如何实现桥接模式
    这篇文章主要为大家展示了“Java设计模式之如何实现桥接模式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java设计模式之如何实现桥接模式”这篇文章吧。桥接模式桥接模式是将抽象部分与它的实现部...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作