iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >prototype有哪些优点
  • 595
分享到

prototype有哪些优点

2023-06-19 11:06:23 595人浏览 八月长安
摘要

这篇文章主要讲解了“prototype有哪些优点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“prototype有哪些优点”吧!效果Prototype有许多和Abstract Factory

这篇文章主要讲解了“prototype有哪些优点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“prototype有哪些优点”吧!

效果

Prototype有许多和Abstract Factory(3 . 1)和Builder(3 . 2)一样的效果:它对客户隐藏了具体的产品类,因此减少了客户知道的名字的数目。此外,这些模式使客户无需改变即可使用与特定应用相关的类。

隐藏具象类,针对抽象类编程与其说是创建对象模式是的共性,不如说是大多数设计模式的共性。进一步来讲,应该说是面向对象编程这门技术的共性。重要的事情说三遍,对于面对抽象类编程这一点来说,强调多少遍都不为过。


下面列出Prototype模式的另外一些优点。

以下的优点才是原型模式独有的优点。


1 ) 运行时刻增加和删除产品 

Prototype允许只通过客户注册原型实例就可以将一个新的具体产品类并入系统。它比其他创建型模式更为灵活,因为客户可以在运行时刻建立和删除原型。

这是原型模式最有用的场景。一般来讲,架构负责规定各种数据,对象交互的方式。架构开发完成以后,我们当然希望它不经变更就可以适用于将来的数据和对象。运行时增加和删除产品使实现这种愿望成为可能。

需要注意的是:这里的产品不是用程序的输出,而是应用程序需要使用和处理的对象。

2 ) 改变值以指定新对象 

高度动态的系统允许你通过对象复合定义新的行为 — 例如,通过为一个对象变量指定值 — 并且不定义新的类。你通过实例化已有类并且将这些实例注册为客户对象的原型,就可以有效定义新类别的对象。客户可以将职责代理给原型,从而表现出新的行为。

所谓高度动态的系统,说的就是就是用户可以很自由地定义程序的行为。而这种修改定义的行为,基础的方法是修改参数,高级的方法就是使用已有对象地组合。无论哪种方式,系统的动作模式都是将定义好的对象当作原型,通过克隆这个原型得到新的实例在系统中使用。

这种设计使得用户无需编程即可定义新“类”。实际上,克隆一个原型类似于实例化一个类。Prototype模式可以极大的减少系统所需要的类的数目。在我们的音乐编辑器中,一个GraphicTool类可以创建无数种音乐对象。

这种设计虽然没有通过编程得到新类,但是对于用户来说,和构建新类并生成对象的效果没有什么本质的区别。由于并没有真正构建新类,系统所需的类的数量就会减少了。

3) 改变结构以指定新对象 

许多应用由部件和子部件来创建对象。例如电路设计编辑器就是由子电路来构造电路的 。为方便起见,这样的应用通常允许你实例化复杂的、用户定义的结构,比方说,一次又一次的重复使用一个特定的子电路。
Prototype模式也支持这一点。我们仅需将这个子电路作为一个原型增加到可用的电路元素选择板中。只要复合电路对象将 Clone实现为一个深拷贝(deep copy),具有不同结构的电路就可以是原型了

DOS版的Protel(好像是3.0)有元器件的自定义功能:只要通过定义元器件的形状,管脚等简单的操作就可以构建自己的器件库并使用它。学过设计模式才知道,那些功能都可以通过原型模式来实现。

如果没有用过电路板设计软件也没有关系,Office中的图库,模板等可以另外加载的功能都可以考虑使用原型模式来实现。


4 ) 减少子类的构造 

Factory Method(3 . 3)经常产生一个与产品类层次平行的 Creator类层次。Prototype模式使得你克隆一个原型而不是请求一个工厂方法去产生一个新的对象。因此你根本不需要Creator类层次。这一优点主要适用于像 C++这样不将类作为一级类对象的语言。像Smalltalk和Objective C这样的语言从中获益较少,因为你总是可以用一个类对象作为生成者。在这些语言中,类对象已经起到原型一样的作用了。

如论哪种方式或者语言,创建对象的过程总是需要的。具体选择哪种模式,一般都是综合代码扩展性,独立性,简洁性各方面的要求来考虑的。选择原型模式的好处就是不再需要一个平行的Creator类层次,坏处就是构建对象的代码和对象本身的代码同时包含在同一个类中。具体采用哪种模式,考验的是设计者根据实际情况运用设计模式的能力。

感谢各位的阅读,以上就是“prototype有哪些优点”的内容了,经过本文的学习后,相信大家对prototype有哪些优点这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: prototype有哪些优点

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

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

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

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

下载Word文档
猜你喜欢
  • prototype有哪些优点
    这篇文章主要讲解了“prototype有哪些优点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“prototype有哪些优点”吧!效果Prototype有许多和Abstract Factory...
    99+
    2023-06-19
  • Iodine有哪些优点
    本篇内容主要讲解“Iodine有哪些优点”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Iodine有哪些优点”吧!1. 更优秀的语言Iodine是常规Java的完整超集,它提供了强大的功能,使得...
    99+
    2023-06-17
  • OJB有哪些优点
    这篇文章主要介绍“OJB有哪些优点”,在日常操作中,相信很多人在OJB有哪些优点问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”OJB有哪些优点”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!简介:对象关系桥...
    99+
    2023-06-03
  • HBase有哪些优点
    本篇内容介绍了“HBase有哪些优点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是HBase?HBase是一个分布式的、面向列的开源数...
    99+
    2023-06-02
  • html5有哪些优点
    本篇内容介绍了“html5有哪些优点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!html5是最近几年逐渐...
    99+
    2024-04-02
  • nodejs有哪些优点
    这篇文章主要讲解了“nodejs有哪些优点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“nodejs有哪些优点”吧! nodej...
    99+
    2024-04-02
  • jquery有哪些优点
    这篇文章主要介绍了jquery有哪些优点,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 jquery的优点:1、...
    99+
    2024-04-02
  • Python的优点有哪些
    这篇文章主要讲解了“Python的优点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的优点有哪些”吧!  基于Python本身的优点:简单,易学,速度快,免费、开源,高层语...
    99+
    2023-06-02
  • vscode的优点有哪些
    vscode的优点有以下几点:轻量级vscode是一款轻量级的编辑器,安装包小,且启动速度快,可以提高用户体验。插件丰富vscode拥有丰富的插件系统,可以编辑HTML、CSS、JS、TS、Vue、React等前端代码和JAVA、Pytho...
    99+
    2024-04-02
  • ChatGPT的优点有哪些
    这篇“ChatGPT的优点有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ChatGP...
    99+
    2023-02-20
    chatgpt
  • Docker有哪些优缺点
    今天小编给大家分享一下Docker有哪些优缺点的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Docker解决的问题:由于不同...
    99+
    2023-06-27
  • DevOps的优点有哪些
    这篇文章主要讲解了“DevOps的优点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“DevOps的优点有哪些”吧!DevOps(Development和Operations的组合词)是...
    99+
    2023-06-27
  • memSQL有哪些优缺点
    MemSQL的优点包括:1. 高性能:MemSQL是一个内存中的数据库,可以提供极高的读写性能和低延迟查询。它可以通过在内存中存储和...
    99+
    2023-09-13
    memSQL
  • UGUI的优点有哪些
    这篇文章主要为大家展示了“UGUI的优点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“UGUI的优点有哪些”这篇文章吧。UGUI的优点新UI系统二 直观、易于使用对于UI控件,开发者可以直...
    99+
    2023-06-04
  • HTAP的优点有哪些
    这篇文章主要讲解了“HTAP的优点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTAP的优点有哪些”吧!4 月 25 日,领先的企业级开源分布式数据...
    99+
    2024-04-02
  • MySQL 8.0.0有哪些优点
    本篇内容介绍了“MySQL 8.0.0有哪些优点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MySQL ...
    99+
    2024-04-02
  • Swagger3的优点有哪些
    这篇文章主要介绍“Swagger3的优点有哪些”,在日常操作中,相信很多人在Swagger3的优点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Swagger3的优点有...
    99+
    2024-04-02
  • Log4j2的优点有哪些
    这篇文章主要讲解了“Log4j2的优点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Log4j2的优点有哪些”吧!Log4j2简介Apache Log4j 2是 Log4j(1) 的升...
    99+
    2023-06-15
  • pandas的优点有哪些
    本篇内容主要讲解“pandas的优点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“pandas的优点有哪些”吧!下面是一个例子,数据获取方式见文末。>>> im...
    99+
    2023-06-15
  • HADOOP HDFS有哪些优点
    本篇内容介绍了“HADOOP HDFS有哪些优点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!以HADOOP 2.x为背景。一、库房(存储银...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作