iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >web创建型模式的相关知识点有哪些
  • 258
分享到

web创建型模式的相关知识点有哪些

2023-06-19 10:06:44 258人浏览 薄情痞子
摘要

这篇文章主要讲解了“WEB创建型模式的相关知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web创建型模式的相关知识点有哪些”吧!创建型模式的讨论考虑在Prototype模式中描述

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

创建型模式的讨论

考虑在Prototype模式中描述的绘图编辑器框架。可以有多种方法通过产品类来参数化GraphicTool:

这里考虑的是通过一个选择板为系统添加图形要素的场景。

• 使用Factory Method模式,将为选择板中的每个Graphic的子类创建一个GraphicTool的子类。GraphicTool将有一个NewGraphic操作,每个GraphicTool的子类都会重定义它。

按照原型模式章节中的解释,GraphicTool类还要另外具有其他的功能,例如图形移动,旋转的功能。这里说的应该是在此基础上另外构建一个GraphicTool的子类。

• 使用Abstract Factory模式,将有一个GraphicsFactory类层次对应于每个Graphic的子类。在这种情况每个工厂仅创建一个产品:CircleFactory将创建Circle,LineFactory将创建Line,等等。GraphicTool将以创建合适种类Graphic的工厂作为参数。

这里所说的方式是每个工厂构建一个产品的场景。在实际的开发中,也可以为构建产品的工厂方法增加参数,这种方式可以有效减少工厂或者工厂方法的数量。

• 使用Prototype模式,每个Graphic的子类将实现Clone操作,并且Graphi cTool将以它所创建的Graphic的原型作为参数。

这是《设计模式》书中选择的方式。

究竟哪一种模式最好取决于诸多因素。在我们的绘图编辑器框架中,第一眼看来,FactoryMethod模式使用是最简单的。它易于定义一个新的GraphicTool的子类,并且仅当选择板被定义了的时候,GraphicTool的实例才被创建。它的主要缺点在于GraphicTool子类数目的激增,并且它们都没有做很多事情。

工厂方法应该是作为一个副业,为现有类增加构建关联产品的方法使之成为一个宿主类,但是实际使用中经常会出现这种情况:构建新的子类只是为了增加新产品。这就有点过了。

Abstract Factory并没有很大的改进,因为它需要一个同样庞大的Graphics Factory类层次。只有当早已存在一个GraphicsFactory类层次时,Abstract Factory才比Factory Method更好一点—或是因为编译器自动提供(像在Smalltalk或是Objective C中)或是因为系统的其他部分需要这个Gr aphicsFactory类层次。

某种角度来讲,抽象工厂只是将工厂方法从宿主类中独立出来的新类,所以也会具有工厂方法模式类似的问题。

总的来说,Prototype模式对绘图编辑器框架可能是最好的,因为它仅需要为每个Graphics类实现一个Clone操作。这就减少了类的数目,并且Clone可以用于其他目的而不仅仅是纯粹的实例化(例如,一个Duplicate菜单操作)。

这句化换个说法就是对于原型模式的场景来说,原型模式是最合适的。这是当然的事情,要不然原型模式也不会选择这个场景对吧。在实际的开发中用到原型模式的时候无法回避的是需要解决原型从哪里来的问题。

Factory Method使一个设计可以定制且只略微有一些复杂。其他设计模式需要新的类,而Factory Method只需要一个新的操作。人们通常将Factory Method作为一种标准的创建对象的方法。但是当被实例化的类根本不发生变化或当实例化出现在子类可以很容易重定义的操作中(比如在初始化操作中)时,这就并不必要了。

如果需要将构建产品的代码分离出来,工厂方法可以作为第一步的选择。如果不需要改变实例化的类型,或者该类型变化可以和动作的多态同步,也就没有必要将构建产品的部分独立出来了。

使用Abstract Factory、Prototype或Builder的设计甚至比使用Factory Method的那些设计更灵活,但它们也更加复杂。通常,设计以使用Factory Method开始,并且当设计者发现需要更大的灵活性时,设计便会向其他创建型模式演化。当你在设计标准之间进行权衡的时候,了解多个模式可以给你提供更多的选择余地。

更独立的类意味着更大的灵活性,但同时也意味着更复杂的设计。这是考验的是设计者选择的能力,平衡的感觉。当然了作为选择和平衡的前提,你得先知道有哪些可有的设计模式。

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

--结束END--

本文标题: web创建型模式的相关知识点有哪些

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

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

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

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

下载Word文档
猜你喜欢
  • web创建型模式的相关知识点有哪些
    这篇文章主要讲解了“web创建型模式的相关知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web创建型模式的相关知识点有哪些”吧!创建型模式的讨论考虑在Prototype模式中描述...
    99+
    2023-06-19
  • CSS盒模型的相关知识点有哪些
    本篇内容主要讲解“CSS盒模型的相关知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS盒模型的相关知识点有哪些”吧!我们先看个例子:下面的 div 元素的总宽度是多少呢?<!...
    99+
    2023-07-06
  • TypeScript泛型的相关知识点有哪些
    本篇内容主要讲解“TypeScript泛型的相关知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“TypeScript泛型的相关知识点有哪些”吧!1、t...
    99+
    2024-04-02
  • HashMap相关知识点有哪些
    本篇内容介绍了“HashMap相关知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!HashMap 和 HashSet 是 Java...
    99+
    2023-06-17
  • Baseline相关知识点有哪些
    本篇内容主要讲解“Baseline相关知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Baseline相关知识点有哪些”吧! 在 Oracle Da...
    99+
    2024-04-02
  • CSS相关知识点有哪些
    本篇内容介绍了“CSS相关知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1、CSS选择器 ...
    99+
    2024-04-02
  • 分布式CAP相关知识点有哪些
    本篇内容主要讲解“分布式CAP相关知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分布式CAP相关知识点有哪些”吧!CAP的前世今生1 起源CAP理论,被戏称为“帽子理论”,CAP是E...
    99+
    2023-06-05
  • JVM相关的知识点有哪些
    这篇文章主要讲解了“JVM相关的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JVM相关的知识点有哪些”吧!JVM作为java运行的基础,很难相...
    99+
    2024-04-02
  • synchronized的相关知识点有哪些
    这篇文章主要讲解了“synchronized的相关知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“synchronized的相关知识点有哪些”吧!...
    99+
    2024-04-02
  • 有哪些Java的相关知识点
    这篇文章主要介绍“有哪些Java的相关知识点”,在日常操作中,相信很多人在有哪些Java的相关知识点问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些Java的相关知识点”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-16
  • Git的相关知识点有哪些
    这篇文章主要介绍“Git的相关知识点有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Git的相关知识点有哪些”文章能帮助大家解决问题。分支和合并Git 跟其他版本控制系统***的优势就在于其高级...
    99+
    2023-06-17
  • KeyDB的相关知识点有哪些
    今天小编给大家分享一下KeyDB的相关知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。线程模型KeyDB将redi...
    99+
    2023-06-19
  • MySQL相关知识点有哪些
    这篇文章主要介绍了MySQL相关知识点有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 1、数据库架构1.1...
    99+
    2024-04-02
  • Git相关知识点有哪些
    这篇文章主要讲解了“Git相关知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Git相关知识点有哪些”吧!一、Git工作流程以上包括一些简单而常用...
    99+
    2024-04-02
  • YARN相关知识点有哪些
    本篇内容介绍了“YARN相关知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!YARN产生背景为什么会产生YRAN?这个与MapRe...
    99+
    2023-06-19
  • React的相关知识点有哪些
    这篇文章主要介绍“React的相关知识点有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“React的相关知识点有哪些”文章能帮助大家解决问题。React与传统MVC的关系轻量级的视图层库!A J...
    99+
    2023-06-03
  • library cache相关知识点有哪些
    library cache相关知识点有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。共享游标Sql首次解析后会生成父游标和1个子游标(...
    99+
    2024-04-02
  • java Shiro相关知识点有哪些
    这篇文章主要介绍了java Shiro相关知识点有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java Shiro相关知识点有哪些文章都会有所收获,下面我们一起来看看吧。1.权限的管理1.1 什么是权限管...
    99+
    2023-07-06
  • mysql binlog相关知识点有哪些
    本篇内容主要讲解“mysql binlog相关知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql binlog相关知识点有哪些”吧! ...
    99+
    2024-04-02
  • Oracle Cursor的相关知识点有哪些
    本篇内容介绍了“Oracle Cursor的相关知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作