iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >web设计中抽象工厂的动机是什么
  • 537
分享到

web设计中抽象工厂的动机是什么

2023-06-19 11:06:30 537人浏览 薄情痞子
摘要

今天小编给大家分享一下WEB设计中抽象工厂的动机是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。抽象工厂模式的动机考虑一

今天小编给大家分享一下WEB设计中抽象工厂的动机是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

抽象工厂模式的动机

考虑一个支持多种视感( l o o k - a n d - f e e l)标准的用户界面工具包,例如 M o t i f和Presentation Manager。不同的视感风格为诸如滚动条、窗口和按钮等用户界面“窗口组件”定义不同的外观和行为。为保证视感风格标准间的可移植性,一个应用不应该为一个特定的视感外观硬编码它的窗口组件。在整个应用中实例化特定视感风格的窗口组件类将使得以后很难改变视感风格

设计模式》成书很早,所以书中会出现许多过去的软件和技术,例如上文Moti和Presentation Manager。这里建议大家不必过分在意这些名词,能够理解作者意图即可。上面的文字中忽略例如的部分也不会有任何问题,只要能找到类似的场景就好,例如linux操作系统的主题就是一个不错的例子。除了表示方式不同之外,动作方式也会有所不同。可以想象:如果将所有和主题相关的代码都写在一个类里,代码势必会变得很复杂,最后的结果就是得无法维护和扩展。

为解决这一问题我们可以定义一个抽象的 Wi d g e t F a c t o r y类,这个类声明了一个用来创建每一类基本窗口组件的接口。每一类窗口组件都有一个抽象类,而具体子类则实现了窗口组件的特定视感风格。对于每一个抽象窗口组件类, Wi d g e t F a c t o r y接口都有一个返回新窗口组件对象的操作。客户调用这些操作以获得窗口组件实例,但客户并不知道他们正在使用的是哪些具体类。这样客户就不依赖于一般的视感风格,如下页图所示。

web设计中抽象工厂的动机是什么

每一种视感标准都对应于一个具体的 Wi d g e t F a c t o r y子类。每一子类实现那些用于创建合适视感风格的窗口组件的操作。例如, M o t i f Wi d g e t F a c t o r y的C r e a t e S c r o l l B a r操作实例化并返回一个M o t i f滚动条,而相应的P M Wi d g e t F a c t o r y操作返回一个Presentation Manager的滚动条。客户仅通过Wi d g e t F a c t o r y接口创建窗口组件,他们并不知道哪些类实现了特定视感风格的窗口组件。换言之,客户仅与抽象类定义的接口交互,而不使用特定的具体类的接口。

面向对象中解决这类一问题的方法只有一个,就是利用多态,首先建立各种窗口组建的抽象类,然后在每种主题中为相应的组建准备具象类。上图中的windows和ScrollBar就是窗口组建的抽象类,而PMWindow,MotiWindow,PMSrollBar,MotiScrollBar就是对应的具象类。

对于窗口组建的利用者Client来说,并不需要知道各个窗口组建的具象类,只有知道组件是某种Window或者某种ScrollBar即可。但是还有一个问题:Client在使用组件时虽然可以不知道组件具象类信息,但构建组件的时候无论如何也没有办法继续装糊涂。

解决这个问题想法就是将构建窗口组件的部分封装的到一个类中。名字可以叫WidgetFacroty,它根据主题信息生成对应的窗口组件,坏事交给别人做。这就是简单工厂模式。简单工程模式依然不够完美:因为当增加主题的时候,仍然需要对工厂类进行一定的修改。

终于到了主角出场的时候了。

这里继续请出面向对象的绝招:多态。我们可以准备一个工厂的抽象类,然后为每种主题准备具象类。每种具象工厂类负责生成对应主题的窗口组件。在需要更换主题时,更换具象工厂类即可。

Wi d g e t F a c t o r y也增强了具体窗口组件类之间依赖关系。一个 M o t i f的滚动条应该与M o t i f按钮、M o t i f正文编辑器一起使用,这一约束条件作为使用 M o t i f Wi d g e t F a c t o r y的结果被自动加上。

Client得到窗口组件的方式只有通过指定的具象工厂类一种方式,这样就从结果上决定了哪些具象窗口组建类一起协同工作。

以上就是“web设计中抽象工厂的动机是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: web设计中抽象工厂的动机是什么

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

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

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

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

下载Word文档
猜你喜欢
  • web设计中抽象工厂的动机是什么
    今天小编给大家分享一下web设计中抽象工厂的动机是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。抽象工厂模式的动机考虑一...
    99+
    2023-06-19
  • Java中什么是抽象工厂
    这篇文章将为大家详细讲解有关Java中什么是抽象工厂,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。抽象工厂模式1、什么是抽象工厂在现实生活中许多工厂是综合型的工厂,能生产多种类)的产品,就拿案例里面的可乐...
    99+
    2023-06-29
  • 什么是抽象工厂模式
    这篇文章主要介绍“什么是抽象工厂模式”,在日常操作中,相信很多人在什么是抽象工厂模式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是抽象工厂模式”的疑惑有所帮助!接下来,...
    99+
    2024-04-02
  • JavaScript抽象工厂及工厂方法模式是什么
    这篇文章主要介绍“JavaScript抽象工厂及工厂方法模式是什么”,在日常操作中,相信很多人在JavaScript抽象工厂及工厂方法模式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2024-04-02
  • 怎么理解Java设计模式的抽象工厂模式
    这篇文章主要讲解了“怎么理解Java设计模式的抽象工厂模式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Java设计模式的抽象工厂模式”吧!一、什么是抽象工厂模式为创建一组相关或相互...
    99+
    2023-06-25
  • Golang设计模式中抽象工厂模式详细讲解
    目录抽象工厂模式概念示例抽象工厂模式 抽象工厂模式是一种创建型设计模式, 它能创建一系列相关的对象, 而无需指定其具体类。 抽象工厂定义了用于创建不同产品的接口, 但将实际的创建工...
    99+
    2023-01-11
    Go抽象工厂模式 Go设计模式
  • .Net设计模式之抽象工厂模式怎么实现
    这篇文章主要讲解了“.Net设计模式之抽象工厂模式怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.Net设计模式之抽象工厂模式怎么实现”吧!一、动机(Motivation)在软件系统...
    99+
    2023-06-30
  • 在什么情况下可以使用web抽象工厂模式
    这篇文章主要讲解了“在什么情况下可以使用web抽象工厂模式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在什么情况下可以使用web抽象工厂模式”吧!适用性在以下情况可以使用Abstract ...
    99+
    2023-06-19
  • JAVA抽象工厂模式是什么及怎么实现
    这篇文章主要讲解了“JAVA抽象工厂模式是什么及怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JAVA抽象工厂模式是什么及怎么实现”吧!什么是抽象工厂模式抽象工厂(AbstractF...
    99+
    2023-06-30
  • PHP抽象工厂模式的优点与实现方法是什么
    本篇内容介绍了“PHP抽象工厂模式的优点与实现方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!抽象工厂模式Abstract Fact...
    99+
    2023-07-05
  • 设计模式之什么是工厂模式
    本篇内容主要讲解“设计模式之什么是工厂模式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“设计模式之什么是工厂模式”吧! 01 简单工厂方法简单工厂方法...
    99+
    2024-04-02
  • 如何理解设计模式之把类作为参数的抽象工厂模式
    本篇内容主要讲解“如何理解设计模式之把类作为参数的抽象工厂模式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解设计模式之把类作为参数的抽象工厂模式”吧!这...
    99+
    2024-04-02
  • php设计模式中工厂模式有什么用
    这篇文章将为大家详细讲解有关php设计模式中工厂模式有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用工厂模式的目的或目标?工厂模式的最大优点在于创建对象上面,就...
    99+
    2024-04-02
  • Java中抽象的作用是什么
    本篇文章给大家分享的是有关Java中抽象的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java基础知识(抽象)抽象抽象是从众多的事物中抽取出共同的、本质性的特征,而...
    99+
    2023-06-20
  • java中的工厂模式是什么
    本篇内容介绍了“java中的工厂模式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录前言试例 创建饮料接口(或者抽象类) 具体饮料类...
    99+
    2023-06-20
  • Java中的抽象是什么意思
    这篇文章主要介绍Java中的抽象是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言:数据抽象是一种仅向用户显示基本细节的属性。不向用户显示琐碎或非必需的单元。例如:汽车被视为汽车而不是其单个组件。数据抽象也...
    99+
    2023-06-21
  • 互联网中工厂级恢复出厂设置是什么意思
    这篇文章主要为大家展示了“互联网中工厂级恢复出厂设置是什么意思”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“互联网中工厂级恢复出厂设置是什么意思”这篇文章吧。工厂级恢复出厂设置的意思是高级格机,...
    99+
    2023-06-20
  • java工厂模式创建对象的方法是什么
    Java工厂模式创建对象的方法是通过工厂类来创建对象。工厂类根据客户端的需求,创建一种或多种不同类型的对象。这种方法将对象的实例化过...
    99+
    2023-10-20
    java
  • python中抽象类的原理是什么
    本篇文章为大家展示了python中抽象类的原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代...
    99+
    2023-06-14
  • php中工厂模式的原理是什么
    本篇文章为大家展示了php中工厂模式的原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、说明工厂模式解决的是如何不通过new建立实例对象。它有一些方法可以创建目标,而不是new。如果想改变...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作