Patterns
文章平均质量分 52
Design Patterns
WindRunnerHex
这个作者很懒,什么都没留下…
展开
-
MVVM模式
MVVM模式MVVM全称Model-View-ViewModel是基于MVC和MVP体系结构模式的改进,MVVM就是MVC模式中的View的状态和行为抽象化,将视图UI和业务逻辑分开,更清楚地将用户界面UI的开发与应用程序中业务逻辑和行为的开发区分开来,MVP模式模式不属于一般定义的23种设计模式的范畴,而通常将其看作广义上的架构型设计模式。描述MVVM模式简化了界面与业务的依赖,有助于将图形用户界面的开发与业务逻辑或数据模型的开发分离开来。在MVVM中的ViewModel作为绑定器将视图层UI与数据原创 2021-05-10 19:59:01 · 224 阅读 · 0 评论 -
MVP模式
MVP模式MVC即模型Model、视图View、管理器Presenter,MVP模式从MVC模式演变而来,通过管理器将视图与模型巧妙地分开,即将Controller改名为Presenter,同时改变了通信方向,MVP模式模式不属于一般定义的23种设计模式的范畴,而通常将其看作广义上的架构型设计模式。描述在MVC里View是可以直接访问Model中数据的,但MVP中的View并不能直接使用Model,而是通过为Presenter提供接口,让Presenter去更新Model,再通过观察者模式等方式更新V原创 2021-04-21 21:44:25 · 202 阅读 · 0 评论 -
MVC模式
MVC模式MVC即模型Model、视图View、控制器Controller,用一种将业务逻辑、数据、视图分离的方式组织架构代码,通过分离关注点的方式来支持改进应用组织方式,其促成了业务数据Model从用户界面View中分离出来,还有第三个组成部分Controller负责管理传统意义上的业务逻辑和用户输入,通常将MVC模式看作架构型设计模式。描述在前端组件式架构开发,常常将视图、数据、业务逻辑等写在一个模块内,如果组件的内容比较多,容易造成层次的混乱,增加开发与维护的成本,而使用MVC模式可以将数据层原创 2021-03-05 09:37:13 · 182 阅读 · 3 评论 -
Widget模式
Widget模式Widget模式是指借用Web Widget思想将页面分解成组件,针对部件开发,最终组合成完整的页面,Web Widget指的是一块可以在任意页面中执行的代码块,Widget模式不属于一般定义的23种设计模式的范畴,而通常将其看作广义上的架构型设计模式。描述模块化开发使页面的功能细化,逐一实现每个功能模块来完成系统需求,这是一种很好的编程实践,在简单模板模式实现的模板引擎的帮助下可以非常方便的完成这个实例,这将更适合多人团队开发,降低相互之间因为功能或者视图创建的耦合影响概率,组件的多原创 2021-01-12 17:06:49 · 1750 阅读 · 0 评论 -
异步模块模式
异步模块模式异步模块模式AMD是当请求发出后,继续其他业务逻辑,直到模块加载完成执行后续逻辑,实现模块开发中的对模块加载完成后的引用,大名鼎鼎的require.js就是以它为思想的,异步模块模式不属于一般定义的23种设计模式的范畴,而通常将其看作广义上的架构型设计模式。描述异步模块模式主要是用在浏览器环境中,浏览器环境不同于服务器环境,为了不阻塞渲染线程通常以异步的方式来加载外部Js文件,因此要使用文件中的某些模块方法必须要经历文件加载过程,而对于这种问题同步模块模式则无法适用,需要使用异步模块模式。原创 2021-01-11 16:41:35 · 317 阅读 · 0 评论 -
同步模块模式
同步模块模式同步模块模式SMD是请求发出后,无论模块是否存在,立即执行后续的逻辑,实现模块开发中对模块的立即引用,模块化是将复杂的系统分解为高内聚、低耦合模块,同步模块模式不属于一般定义的23种设计模式的范畴,而通常将其看作广义上的架构型设计模式。描述同步模块模式通常用来解决如下场景的问题,随着页面功能的增加,系统的业务逻辑越来越复杂,多人开发的功能经常耦合在一起,有时项目经理提出的需求,分配给多人实现的时候,常常因为某一处功能耦合了多人的代码,从而出现排队修改的现象。通过使用模块化来分解复杂的系统原创 2021-01-08 11:42:38 · 748 阅读 · 0 评论 -
等待者模式
等待者模式等待者模式是通过对多个异步任务进行监听,当异步任务完成后触发未来发生的动作,在没有Promise这个模型的时候,其实就已经出现这样类似的技术方案,不同的只是没有定制为一个技术规范,等待者模式不属于一般定义的23种设计模式的范畴,而通常将其看作广义上的技巧型设计模式。描述等待者模式就是通过对异步进程监听,来触发未来发生的动作,举个例子当异步进程操作A、B需要都完成以后才能进行C进程操作,在开发中经常会这样,需要等到上个操作完成或者知道上个操作完成才去触发下个操作,而JavaScript又是单线原创 2020-12-28 11:15:50 · 388 阅读 · 0 评论 -
参与者模式
参与者模式JavaScript中的参与者模式,就是在特定的作用域中执行给定的函数,并将参数原封不动的传递,参与者模式不属于一般定义的23种设计模式的范畴,而通常将其看作广义上的技巧型设计模式。描述参与者模式实现的在特定的作用域中执行给定的函数,并将参数原封不动的传递,实质上包括函数绑定和函数柯里化。对于函数绑定,它将函数以函数指针(函数名)的形式传递,使函数在被绑定的对象作用域中执行,因此函数的执行中可以顺利地访问到对象内部的数据,由于函数绑定构造复杂,执行时需要消耗更多的内存,因此执行速度上要稍慢原创 2020-12-24 16:12:51 · 358 阅读 · 1 评论 -
惰性模式
惰性模式惰性模式就是在某种外界环境一定的情况下,减少代码的对环境的重复分支判断,以此提升代码执行性能。惰性模式模式不属于一般定义的23种设计模式的范畴,而通常将其看作广义上的技巧型设计模式。描述惰性模式就是通过对对象重新定义来屏蔽原对象中的分支判断,而我们的实现思路也非常简单,既然某种外界环境是确定的,后续不需要再去判断,那么只要将环境判断完成之后,重定义这个方法即可,只返回特定分支下的代码逻辑。惰性模式的应用场景非常广泛,特别是当今浏览器种类繁多的现象,很多功能在不同浏览器中实现不一,为了兼容不同原创 2020-12-21 10:36:46 · 422 阅读 · 0 评论 -
简单模板模式
简单模板模式简单模板模式是通过格式化字符串拼接出视图避免创建视图时大量的节点操作,简单模板模式不属于通常定义的设计模式范畴。描述对比于模板方法模式,其定义了如何执行某些算法的框架,通过父类公开的接口或方法子类去实现或者是调用,而简单模板模式是用来解决为了创建视图的大量节点操作,并在此基础上解决数据与结构的强耦合性。节点操作如果我们要生成一个列表,直接通过各类节点操作是相对比较麻烦的。<!DOCTYPE html><html><head> <t原创 2020-12-14 20:50:28 · 339 阅读 · 0 评论 -
防抖节流模式
防抖节流模式防抖debounce与节流throttle都是控制事件处理函数执行频率的方法,当函数会进行DOM操作或者具有请求服务器等行为并且作为高频事件例如onscroll触发的事件处理函数时,就需要进行事件处理函数执行频率的控制,否则会造成大量的资源浪费致使性能下降,当然无论是防抖与节流实质上并没有减少事件触发次数,而是通过减少事件处理函数的执行次数从而提高性能。准确来说防抖节流模式不属于通常定义的设计模式范畴,但他们是一种非常有用的代码构建技巧。防抖模式非立即防抖当持续触发事件的时候,事件处理函原创 2020-12-07 11:27:38 · 548 阅读 · 0 评论 -
数据访问对象模式
数据访问对象模式数据访问对象模式Data Access Object Pattern即DAO模式,用于把低级的数据访问API或操作从高级的业务服务中分离出来,准确来说数据访问对象模式不属于通常定义的设计模式范畴,但数据访问对象模式是一种非常有用的数据访问管理构建技巧。描述数据访问对象模式就是对数据源的访问与存储进行封装,提供一个数据访问对象类负责对存储的数据进行管理和操作,规范数据存储格式,类似于后台的DAO层。HTML5提供了两种在客户端存储数据的新方法: localStorage、session原创 2020-12-03 11:26:00 · 545 阅读 · 0 评论 -
委托模式
委托模式委托模式就是利用事件的冒泡机制把一个或者一组元素的事件委托到它的父层或者更外层元素上,准确来说不属于通常定义的设计模式范畴,但事件委托是一种非常有用的代码构建技巧。描述事件委托,委托模式就是利用事件的冒泡机制把一个或者一组元素的事件委托到它的父层或者更外层元素上,真正绑定事件的是外层元素,当事件响应到需要绑定的元素上时,会通过事件冒泡机制从而触发它的外层元素的绑定事件上,然后在外层元素上去执行函数。举个例子,比如一个宿舍的同学同时快递到了,一种方法就是他们都一个个去领取,还有一种方法就是把这原创 2020-12-01 11:01:47 · 568 阅读 · 0 评论 -
链模式
链模式链模式是一种链式调用的方式,准确来说不属于通常定义的设计模式范畴,但链式调用是一种非常有用的代码构建技巧。描述链式调用在JavaScript语言中很常见,如jQuery、Promise等,都是使用的链式调用,当我们在调用同一对象多次其属性或方法的时候,我们需要多次书写对象进行.或()操作,链式调用是一种简化此过程的一种编码方式,使代码简洁、易读。链式调用通常有以下几种实现方式,但是本质上相似,都是通过返回对象供之后进行调用。this的作用域链,jQuery的实现方式,通常链式调用都是采用这原创 2020-11-26 17:29:21 · 879 阅读 · 0 评论 -
解释器模式
解释器模式解释器模式Interpreter Pattern提供了评估语言的语法或表达式的方式,它属于行为型模式,这种模式实现了一个表达式接口,该接口解释一个特定的上下文,解释器模式通常被用在SQL解析、符号处理引擎等。描述在软件开发中,会遇到有些问题多次重复出现,而且有一定的相似性和规律性,如果将它们归纳成一种简单的语言,那么这些问题实例将是该语言的一些句子,这样就可以用编译原理中的解释器模式来实现了。解释器模式是给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子,也就原创 2020-11-23 10:50:56 · 360 阅读 · 0 评论 -
迭代器模式
迭代器模式迭代器模式Iterator Pattern提供了一种方法顺序访问一个聚合对象中的各个元素,而又无需暴露该对象的内部实现,这样既可以做到不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据,迭代器模式属于行为型模式。描述迭代器模式是针对集合对象而生的,对于集合对象而言,肯定会涉及到对集合的添加和删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作放在集合对象中,但这样的话,集合对象既承担太多的责任了,面向对象设计原则中有一条就是单一职责原则,所有我们要尽可能地分离这些职责原创 2020-11-18 11:36:29 · 347 阅读 · 0 评论 -
备忘录模式
备忘录模式备忘录模式Memento Pattern是在不破坏封装性的前提下,将对象当前的内部状态保存在对象之外,以便以后当需要时能将该对象恢复到原先保存的状态。备忘录模式又叫快照模式,是一种对象行为型模式。描述备忘录模式是关于捕获和存储对象的当前状态的方式,以便以后可以平滑地恢复它。优点提供了一种可以恢复状态的机制,当用户需要时能够比较方便地将数据恢复到某个历史的状态。实现了内部状态的封装,除了创建它的发起类之外,其他对象都不能够访问这些状态信息。简化了发起类,发起类不需要管理和保存其内部状原创 2020-11-15 11:47:40 · 322 阅读 · 0 评论 -
中介者模式
中介者模式中介者模式Mediator Pattern用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,降低多个对象和类之间的通信复杂性,而且可以独立地改变它们之间的交互,中介者类通常处理不同类之间的通信。中介者模式又称为调停者模式,是一种对象行为型模式。描述在软件工程中,中介者模式定义了一个对象,该对象封装了一组对象之间的交互方式,由于该模式可以更改程序的运行行为,因此该模式被视为行为模式。在用户与用户直接聊天的设计方案中,用户对象之间存在很强的关联性,将导致原创 2020-11-10 20:34:22 · 438 阅读 · 1 评论 -
访问者模式
访问者模式访问者模式Visitor Pattern中属于行为型模式,针对于对象结构中的元素,定义在不改变该对象的前提下访问结构中元素的新方法,元素的执行算法可以随着访问者改变而改变,主要意图在于将数据结构与数据操作分离,解决稳定的数据结构和易变的操作耦合问题。描述在面向对象编程和软件工程中,访问者设计模式是一种将算法与它所运行的对象结构分离的方法,这种分离的实际结果是能够在不修改现有对象结构的情况下向现有对象结构添加新操作,这是遵循开放封闭原则的一种方式。优点符合单一职责原则,凡是适用访问者模式原创 2020-11-03 15:29:45 · 363 阅读 · 0 评论 -
命令模式
命令模式命令模式Command Pattern是一种数据驱动的设计模式,其属于行为型模式,别名为动作Action模式或事务Transaction模式,命令模式将请求以命令的形式包裹在对象中,并传给调用对象,调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象对请求排队或者记录请求日志,以及支持可撤销的操作。描述在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来原创 2020-10-29 15:59:36 · 410 阅读 · 0 评论 -
责任链模式
责任链模式责任链模式Chain of Responsibility Pattern为请求创建了一个接收者对象的链,其对请求的发送者和接收者进行解耦,这种类型的设计模式属于行为型模式,在这种模式中,通常每个接收者都包含对另一个接收者的引用,如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。描述在面向对象设计中,责任链模式是一种由命令对象源和一系列处理对象组成的设计模式。每个处理对象都包含逻辑,这些逻辑定义了它可以处理的命令对象的类型,其余对象将传递给链中的下一个处理对象。为避免原创 2020-10-26 16:44:55 · 417 阅读 · 0 评论 -
策略模式
策略模式策略模式Strategy Pattern也称为政策模式Policy Pattern,其定义一系列算法,将每一个算法封装起来,并让它们可以相互替换,策略模式让算法独立于使用它的客户而变化,这种类型的设计模式属于行为型模式。描述完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务,在软件开发中也常常遇到类似的情况,实现某一个功能有多个途径,此时可以使用一种设计模式来使得系统可以灵活地选择解决途径,也能够方便地增加新的解决途径。在原创 2020-10-22 15:59:15 · 399 阅读 · 0 评论 -
状态模式
状态模式状态模式State Pattern是一种对象行为型模式,其以面向对象的方式实现状态机,使用状态模式,通过将每个单独的状态实现为状态模式接口的派生类,并通过调用由模式的超类定义的方法来实现状态转换,来实现状态机,状态模式也可以解释为策略模式,它能够通过调用模式接口中定义的方法来切换当前策略。描述在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的stateful对象,此种对象状态是从事先定义好的一系列值中取出的,当一个这样的对象与外部事件产生互动原创 2020-10-20 16:48:46 · 349 阅读 · 0 评论 -
观察者模式
观察者模式观察者模式Observer Pattern是一种对象行为型模式,当定义的对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新,观察者模式又叫做发布-订阅Publish - Subscribe模式、模型-视图Model - View模式、源-监听器Source - Listener模式或从属者Dependents模式。描述观察者模式建立了一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。所以发生改变的对象称为原创 2020-10-19 14:34:18 · 376 阅读 · 0 评论 -
模板方法模式
模板方法模式模板方法模式Template Method Pattern定义了如何执行某些算法的框架,一个抽象类公开定义了执行它的方法的方式或模板,其子类可以按需要重写方法实现,也可以调用将以抽象类中定义的方式进行,这种类型的设计模式属于行为型模式。描述模板方法模式是一种行为设计模式,用于定义操作中算法的程序框架,从而将某些步骤推迟到子类中,其可以重新定义算法的某些步骤,而无需更改算法的结构。优点封装不变部分,扩展可变部分,提高了拓展性。提取公共代码,便于维护,提高代码复用性。行为由父类控制,原创 2020-10-14 17:05:46 · 382 阅读 · 0 评论 -
享元模式
享元模式享元模式Flyweight Pattern主要用于减少创建对象的数量,以减少内存占用和提高性能,其提供了减少对象数量从而改善应用所需的对象结构的方式,享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。享元模式运用共享技术有效地支持大量细粒度对象的复用,系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用,由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式,其是一种对象结构型模式。描述面向对象技术可以很好地解决一些灵活性或可扩展性问原创 2020-10-12 17:01:08 · 512 阅读 · 0 评论 -
组合模式
组合模式组合模式Composite Pattern又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象,通常依据树形结构来组合对象,用来表示部分以及整体层次,这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。描述在软件工程中,组合模式是一种分区设计模式,组合模式描述了将以与对象的单个实例相同的方式对待一组对象,组合的目的是将对象组成树状结构,以表示整个部分的层次结构。即将对象组合成树形结构以表示部分-整体的层次结构,使得用户对单个对象和组合对象的使用具有一致性,通常用于树形菜单、文件、原创 2020-10-06 16:42:47 · 472 阅读 · 0 评论 -
桥接模式
桥接模式桥接Bridge Pattern又称为柄体Handle and Body模式或接口Interface模式,是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,其通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。描述假如要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案:第一种设计方案是为每一种形状都提供一套各种颜色的版本。第二种设计方案是根据实际需要对形状和颜色进行原创 2020-10-05 16:01:36 · 447 阅读 · 0 评论 -
装饰器模式
装饰器模式装饰器模式Decorator Pattern允许向一个现有的对象添加新的功能,同时又不改变其结构,这种类型的设计模式属于结构型模式,是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法完整性的前提下,提供了额外的功能。描述一般有两种方式可以实现给一个类或对象增加行为:继承机制,使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机。关联机制,原创 2020-09-30 10:56:19 · 411 阅读 · 1 评论 -
代理模式
代理模式代理模式Proxy Pattern,给某一个对象提供一个代理,并由代理对象控制对原对象的引用,是一种对象结构型模式。描述在某些情况下,不想或者不能直接引用一个对象,此时可以通过一个称之为代理的第三者来实现 间接引用,代理对象可以在客户端和目标对象之间起到中介的作用,并且可以通过代理对象去掉客户不能看到 的内容和服务或者添加客户需要的额外服务。通过引入一个新的对象来实现对真实对象的操作或者将新的对象作为真实对象的一个替身,这种实现机制即为代理模式。模式结构Subject: 抽象主题角色。原创 2020-09-27 11:07:34 · 439 阅读 · 0 评论 -
适配器模式
适配器模式适配器模式Adapter Pattern又称包装器模式Wrapper Pattern是作为两个接口或对象之间的桥梁,这种类型的设计模式属于结构型模式,它结合了两个独立接口或对象的功能,这种模式负责加入独立的或不兼容的接口与对象,在Js中通常可以使用适配器模式进行框架的适配、参数的适配以及数据的适配。描述在软件开发中采用类似于电源适配器的设计和编码技巧被称为适配器模式,通常情况下,客户端可以通过目标类的接口访问它所提供的服务。有时现有的类可以满足客户类的功能需要,但是它所提供的接口不一定是客户原创 2020-09-25 11:17:18 · 463 阅读 · 0 评论 -
外观模式
外观模式外观模式Facade Pattern又称为门面模式,它是一种对象结构型模式,外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,外观模式在Js中常常用于解决浏览器兼容性问题。描述根据单一职责原则,在软件中将一个系统划分为若干个子系统有利于降低整个系统的复杂性,一个常见的设计目标是使子系统间的通信和相互依赖关系达到最小,而达到该目标的途径之一就是引入一个外观对象,其为子系统的访问提供了一个简原创 2020-09-22 15:26:54 · 400 阅读 · 0 评论 -
单例模式
单例模式单例模式Singleton Pattern又名单件模式或单态模式,属于创建型模式,其涉及到一个单一的类,该类负责创建所需的对象,同时确保只有单个对象被创建,这个类提供了一种访问其唯一的对象的方式,保证访问的对象是只实例化一次的对象类。描述单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式主要有以下要点,首先是某个类只能有一个实例,再是其必须自行创建这个实例,以及其必须自行向整个系统提供这个实例。模式结构Singlet原创 2020-09-17 16:29:13 · 617 阅读 · 0 评论 -
原型模式
原型模式原型模式Prototype Pattern用原型实例指向创建对象的类,使用于创建新的对象的类的共享原型的属性与方法。描述在JavaScript中可以利用其特有的原型继承特性去实现创建对象的方式,也就是创建的一个对象作为另外一个对象的prototype属性值,原型对象本身就是有效地利用了每个构造器创建的对象,其将实例之间相同的属性和方法提取成共有的属性和方法,而这些属性与方法都可以被实例共享。在Java中通常是用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象,即通过一个抽象类实现C原创 2020-09-15 15:28:53 · 531 阅读 · 0 评论 -
建造者模式
建造者模式建造者模式Builder Pattern又可以称为生成器模式,是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,建造者模式属于对象创建型模式。描述建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。模式结构Builder: 抽象建造者,引入抽象建造者的目的,是将建造的具体过程交与它的子类来实现。这样更容易扩展。一般至少会有两个抽象方法,一个用来建造产品,一个是用来返回产品。Conc原创 2020-09-14 18:47:52 · 506 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式抽象工厂模式Abstract Factory是通过对类的工厂抽象使其业务用于对产品类簇的创建,而不仅仅是负责创建某一类产品的实例,抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类,抽象工厂模式又称为Kit模式,属于对象创建型模式。描述在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下一个具体工厂中只有一个工厂方法或者一组重载的工厂方法,但是有时候我们需要一个工厂可以提供多个产品对象,而不是单一的产品对象原创 2020-09-11 17:10:43 · 386 阅读 · 0 评论 -
工厂方法模式
工厂方法模式工厂方法模式Factory Method Pattern又称为工厂模式,也叫虚拟构造器Virtual Constructor模式或者多态工厂Polymorphic Factory模式,它属于类创建型模式,在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。描述简单工厂模式有一个问题,类的创建依赖工厂类,也就是说如果想要拓展程序,必须对工厂类进原创 2020-09-10 19:06:41 · 472 阅读 · 0 评论 -
简单工厂模式
简单工厂模式简单工厂模式又叫静态工厂方法,由一个工厂对象决定创建某一种对象类的实例,这种类型的设计模式属于创建型模式,在简单工厂模式中,可以根据参数的不同返回不同类的实例,简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。描述简单工厂模式目的是定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行,主要解决接口选择的问题,让其子类实现工厂接口,返回的也是一个抽象的产品。模式结构Factory: 工厂角色,工厂角色负责实现创原创 2020-09-09 12:07:30 · 487 阅读 · 0 评论