![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
${简简单单}
这个作者很懒,什么都没留下…
展开
-
每天学习一个设计模式(二十三):行为型之访问者模式
一、基本概念访问者模式(Visitor Pattern)是一个行为型模式,其定义如下:Represent an operation to beperformed on the elements of an object structure.Visitor lets you define a new operation withoutchanging the classes of the elements on which it operates.(封装一些作用于某种数据结构中的各元素的操作,它可以在不改原创 2020-06-19 14:49:37 · 1683 阅读 · 0 评论 -
每天学习一个设计模式(二十二):行为型之模板方法模式
一、基本概念模板方法模式(Template Method Pattern)是如此简单,以致让你感觉你已经能够掌握其精髓了。其定义如下:Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.TemplateMethod lets subclasses redefine certain steps of an algorithm without changing the algorithm原创 2020-06-18 10:52:41 · 1721 阅读 · 0 评论 -
每天学习一个设计模式(二十一):行为型之策略模式
一、基本概念策略模式(Strategy Pattern)是一种比较简单的模式,也叫做政策模式(Policy Pattern)。其定义如下:Define a family of algorithms,encapsulate each one,and make them interchangeable.(定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。)二、通俗解释STRATEGY 策略模式:跟不同类型的MM约会,要用不同的策略,有的请电影比较好,有的则去吃小吃效果不错,有的去海边浪漫最原创 2020-06-17 09:33:32 · 1717 阅读 · 0 评论 -
每天学习一个设计模式(二十):行为型之状态模式
一、基本概念什么是状态模式呢?其定义如下:Allow an object to alter its behavior when its internal state changes.The object will appear to change itsclass.(当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类。)二、通俗解释STATE 状态模式:跟MM交往时,一定要注意她的状态哦,在不同的状态时她的行为会有不同,比如你约她今天晚上去看电影,对你没兴趣的MM就会说“有事情啦原创 2020-06-16 09:36:13 · 1742 阅读 · 0 评论 -
每天学习一个设计模式(十九):行为型之观察者模式
一 、基本概念观察者模式(Observer Pattern)也叫做发布订阅模式(Publish/subscribe),它是一个在项目中经常使用的模式,其定义如下:Define a one-to-many dependency between objects so that when one object changes state,all itsdependents are notified and updated automatically.(定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,原创 2020-06-15 11:00:25 · 1711 阅读 · 0 评论 -
每天学习一个设计模式(十八):行为型之备忘录模式
一、基本概念备忘录模式(Memento Pattern)提供了一种弥补真实世界缺陷的方法,让“后悔药”在程序的世界中真实可行,其定义如下:Without violating encapsulation,capture and externalize an object's internal state so that the object canbe restored to this state later.(在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对原创 2020-06-13 15:25:10 · 1652 阅读 · 0 评论 -
每天学习一个设计模式(十七):行为型之中介者模式
一、基本概念中介者模式的定义为:Define an object that encapsulates how a set of objects interact.Mediator promotesloose coupling by keeping objects from referring to each other explicitly,and it lets you vary theirinteraction independently.(用一个中介对象封装一系列的对象交互,中介者使各对象不需要显原创 2020-06-12 14:30:33 · 1725 阅读 · 0 评论 -
每天学习一个设计模式(十六):行为型之迭代器模式
一、基本概念迭代器模式(Iterator Pattern)目前已经是一个没落的模式,基本上没人会单独写一个迭代器,除非是产品性质的开发,其定义如下:Provide a way to access the elements of an aggregate object sequentially without exposing itsunderlying representation.(它提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。)二、通俗解释ITERATOR迭代器模式原创 2020-06-11 09:32:35 · 1686 阅读 · 0 评论 -
每天学习一个设计模式(十五):行为型之解释器模式
一、基本概念解释器模式(Interpreter Pattern)是一种按照规定语法进行解析的方案,在现在项目中使用较少,其定义如下:Given a language, define a representation for its grammar along with an interpreter that uses therepresentation to interpret sentences in the language.(给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表原创 2020-06-09 10:13:43 · 1962 阅读 · 0 评论 -
每天学习一个设计模式(十三):行为型之责任链模式
一、基本概念责任链模式定义如下:Avoid coupling the sender of a request to its receiver by giving more than one object a chance tohandle the request.Chain the receiving objects and pass the request along the chain until an objecthandles it.(使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之原创 2020-06-05 11:45:40 · 1773 阅读 · 0 评论 -
每天学习一个设计模式(十二):创建型之单例模式
一、基本概念单例模式(Singleton Pattern)是一个比较简单的模式,其定义如下:Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。)二、通俗解释SINGLETON 单例模式:俺有6个漂亮的老婆,她们的老公都是我,我就是我们家里的老公Sigleton,她们只要说道“老公”,都是指的同一个人,那就是我(刚才做了原创 2020-06-04 11:35:24 · 1689 阅读 · 0 评论 -
每天学习一个设计模式(十一):创建型之原型模式
一、基本概念原型模式(Prototype Pattern)的简单程度仅次于单例模式和迭代器模式。正是由于简单,使用的场景才非常地多,其定义如下:Specify the kinds of objects to create using a prototypical instance,and create new objects by copyingthis prototype.(用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。)二、通俗解释PROTOTYPE 原型模式:跟MM用QQ原创 2020-06-03 11:26:36 · 1794 阅读 · 0 评论 -
每天学习一个设计模式(十):创建型之工厂方法模式
一、基本概念工厂方法模式使用的频率非常高,在我们日常的开发中总能见到它的身影。其定义为:Define an interface for creating an object,but let subclasses decide which class to instantiate.FactoryMethod lets a class defer instantiation to subclasses.(定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。)二、通原创 2020-06-02 11:26:49 · 1922 阅读 · 0 评论 -
每天学习一个设计模式(九):创建型之建造者模式
目录一、基本概念二、通俗解释三、建造者模式详解1.造车的例子2.建造者模式的结构3.建造者模式的优点4.使用场景5.注意事项四、建造者模式的扩展和最佳实践建造者模式的扩展最佳实践一、基本概念建造者模式(Builder Pattern)也叫做生成器模式,其定义如下:Separate the construction of a complex object from its representation so that the same constructio原创 2020-05-29 11:00:07 · 1940 阅读 · 0 评论 -
每天学习一个设计模式(八):创建型之抽象工厂模式
一、基本概念抽象工厂模式(Abstract Factory Pattern)是一种比较常用的模式,其定义如下:Provide an interface for creating families of related or dependent objects without specifying theirconcrete classes.(为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的具体类。)二、通俗解释抽象工厂:请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每...原创 2020-05-27 15:41:47 · 1820 阅读 · 0 评论 -
每天学习一个设计模式(七):结构型之代理模式
一、基本概念代理模式(Proxy Pattern)是一个使用率非常高的模式,其定义如下:Provide a surrogate or placeholder for another object to control access to it.(为其他对象提供一种代理以控制对这个对象的访问。)二、通俗解释PROXY代理模式:跟MM在网上聊天,一开头总是“hi,你好”,“你从哪儿来呀?”“你多大了?”“身高多少呀?”这些话,真烦人,写个程序做为我的Proxy吧,凡是接收到这些话都设置好了自己的回答原创 2020-05-26 14:04:37 · 1778 阅读 · 0 评论 -
每天学习一个设计模式(六):结构型之享元模式
一、基本概念享元模式(Flyweight Pattern)是池技术的重要实现方式,其定义如下:Use sharing to support largenumbers of fine-grained objects efficiently.(使用共享对象可有效地支持大量的细粒度的对象。)享元模式的定义为我们提出了两个要求:细粒度的对象和共享对象。我们知道分配太多的对象到应用程序中将有损程序的性能,同时还容易造成内存溢出,那怎么避免呢?就是享元模式提到的共享技术。二、通俗解释FLYWEIGHT享原创 2020-05-25 14:59:48 · 1651 阅读 · 0 评论 -
每天学习一个设计模式(五):结构型之门面模式
一、基本概念门面模式(外观模式)是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。二、通俗解释FACADE门面模式:我有一个专业的Nikon相机,我就喜欢自己手动调光圈、快门,这样照出来的照片才专业,但MM可不懂这些,教了半天也不会。幸好相机有Facade设计模式,把相机调整到自动档,只要对准目标按快门就行了,一切由相机自动调整,这样MM也可以用这个相机给我拍张照片了。 门面模式:外部与一个子系统的通信必须通过一个统一的门原创 2020-05-22 10:06:56 · 1751 阅读 · 0 评论 -
每天学习一个设计模式(四):结构型之装饰模式
一、基本概念装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。二、通俗解释DECORATOR装饰模式:Mary过完轮到Sarly过生日,还是不要叫她自己挑了,不然这个月伙食费肯定玩完,拿出我去年在华山顶上照的照片,在背面写上“最好的的礼物,就是爱你的Fita”,再到街上礼品店买了个像框(卖礼品的MM也很漂亮哦),再找隔壁搞美术设计的Mike设计了一个漂亮的盒子装起来……,我们都是Decorator,最终都在修饰我这个人呀,怎么样,看懂了原创 2020-05-21 15:26:28 · 1788 阅读 · 0 评论 -
每天学习一个设计模式(三):结构型之合成模式
一、基本概念合成模式属于对象的结构模式,有时又叫做“部分——整体”模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。二、通俗解释COMPOSITE合成模式:Mary今天过生日。“我过生日,你要送我一件礼物。”“嗯,好吧,去商店,你自己挑。”“这件T恤挺漂亮,买,这条裙子好看,买,这个包也不错,买。”“喂,买了三件了呀,我只答应送一件礼物的哦。”“什么呀,T恤加裙子加包包,正好配成一套呀,小姐,麻烦你包起来。”“……”,MM都会用C原创 2020-05-20 10:24:03 · 1694 阅读 · 0 评论 -
每天学习一个设计模式(二):结构型之桥梁模式
一、基本概念桥梁模式(Bridge)是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”。这句话有三个关键词,也就是抽象化、实现化和脱耦。理解这三个词所代表的概念是理解桥梁模式用意的关键。 抽象化 从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征,就是抽象化。例如苹果、香蕉、生梨、 桃子等,它们共同的特性就是原创 2020-05-19 10:01:47 · 1774 阅读 · 0 评论 -
每天学习一个设计模式(一):结构型之适配器模式
一、基本概念适配器模式是将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的的类的兼容性问题。二、通俗解释ADAPTER 适配器模式:在朋友聚会上碰到了一个美女Sarah,从香港来的,可我不会说粤语,她不会说普通话,只好求助于我的朋友kent了,他作为我和Sarah之间的Adapter,让我和Sarah可以相互交谈了(也不知道他会不会耍我) 适配器(变压器)模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作原创 2020-05-18 11:05:05 · 1724 阅读 · 0 评论