随笔分类 -  设计模式

1 2 下一页
学习设计模式的心得记录
设计模式--Q&A
摘要:Q&A 书中总结的一些QA 详情 哪个模式最好? 没有正确答案(【手动滑稽】)。评价模式的影响因素很多(现状、需求、限制等等)。但是如果你了解所有模式,你的选择就会很灵活。实际上,我们经常需要结果多种方式来满足需求 为什么我们应该使用设计模式? 在实际的应用开发中,对于软件开发过程有很多的通用(可复 阅读全文
posted @ 2020-12-16 11:51 老鼠不上树 阅读(115) 评论(0) 推荐(0)
翻译模式
摘要:Interpreter Patterns GoF定义:如果有一种语言,那么需要定义语法结构并且需要一个翻译器来解释语言中的语句 概念 这里我们为一种语言定义一个语法规范,并且提供了解释器来处理语法。简单来说,这个模式表达的是如何计算语言中语句的值(真实含义) 例子 现实世界:语言翻译就是这个模式最恰 阅读全文
posted @ 2020-12-15 09:29 老鼠不上树 阅读(787) 评论(0) 推荐(0)
参观者模式
摘要:Visitor Patterns GoF定义:表示在一个对象结构的某个元素上的一个操作。这个模式可以让你在不改变这个元素所在的类的情况下定义新的操作 概念 这个模式帮助我们在不对现有类进行改变的前提下增添新功能。所以我们在这里可以遵循open/close原则(对扩展开放,对修改关闭) 例子 现实世界 阅读全文
posted @ 2020-12-14 22:48 老鼠不上树 阅读(147) 评论(0) 推荐(0)
桥接模式
摘要:Bridge Patterns GoF定义:将抽象定义和其实现分离,达到解耦的目的 概念 在此模式中,将抽象类和它的实现类实现的接口分离。并且在它们之间提供一个桥接接口(bridge interface)。这个接口帮助我们使实现类的功能和接口的功能相独立。我们可以在不互相影响这些类的情况下进行结构性 阅读全文
posted @ 2020-12-14 09:42 老鼠不上树 阅读(75) 评论(0) 推荐(0)
组合模式
摘要:Composite Patterns GoF定义:将对象组织成树状结构来表示整体--部分的关系,组合模式使得客户端对一个单独对象和一组对象的行为不变(认知相同) 概念 客户端使用一个组合对象就和使用一个单独对象一样。在OO语言中,当我们有很多对象,它们有一些共有特性时,我们会将其组成组合对象。它们的 阅读全文
posted @ 2020-12-12 23:18 老鼠不上树 阅读(74) 评论(0) 推荐(0)
Chain of Responsibility Patterns
摘要:Chain of Responsibility Patterns GoF定义:通过让多个(超过一个)对象来处理请求实现请求发送者和接收者的耦合度。接收者(对象)的链会被传入请求,直到有一个对象处理此请求 概念 这里按序列方式处理对象,会有一个源来执行这个过程。我们会创建一个接收链,其中的每个对象都有 阅读全文
posted @ 2020-12-12 22:57 老鼠不上树 阅读(50) 评论(0) 推荐(0)
原型模式
摘要:Prototype Patterns GoF:使用原型的(prototypical)实例来指定可以创建的一些对象,并且通过复制原型对象来创建这些新对象 概念 创建一个新对象被认为是花销比较大的操作。原型模式是作为创建新对象的一种替代做法(通过复制)。这里我们注重于减少创建新对象的花销 例子 现实世界 阅读全文
posted @ 2020-12-10 23:25 老鼠不上树 阅读(72) 评论(0) 推荐(0)
中介者模式
摘要:Mediator Patterns GoF定义:定义一个对象来处理一组对象的交互。中介者模式通过避免对象之间互相引用提高了解耦程度,允许用户独立改变它们各自的交互操作 概念 中介者是负责一组对象交互的。它会追踪各个对象之间的交流记录。系统中的其它对象也知道有这个中介者的存在,当它们想和其它的对象交互 阅读全文
posted @ 2020-12-09 22:17 老鼠不上树 阅读(69) 评论(0) 推荐(0)
抽象工厂模式
摘要:Abstract Factory Patterns GoF定义:提供一个接口,用来创建一组相关联的或有依赖关系的对象,在不提供它们的具体类的前提下 概念 在这个模式中,我们会为一组独立的工厂构建一个处理机制。这些工厂有一个共同的主题。在这里,这个接口用来创建相关联的对象。我们不会直接使用实现类或具体 阅读全文
posted @ 2020-12-08 23:29 老鼠不上树 阅读(71) 评论(0) 推荐(0)
Flyweight模式
摘要:Flyweight Patterns 享元模式,这俩字是真不知道谁想出来的 GoF定义:使用共享来高效支持大量细粒度的对象 概念 一个flyweight是一个对象,通过这个对象我们使用尽可能多的共享数据来节省内存。这里有两个术语,intrinsic_和_extrinsic,前者可以被存在flywei 阅读全文
posted @ 2020-12-07 22:05 老鼠不上树 阅读(85) 评论(0) 推荐(0)
Builder模式
摘要:Builder Patterns GoF定义:将复杂对象的初始化过程根据它的参数来做拆分,这样一个构造过程可以构造出不同的对象(属性内容不同) 概念 在一个复杂对象的构造过程中,如果它状态的组成部分是相互独立的,那么可以使用这个模式。这种构造过程可以按照需要创建出不同的对象 例子 现实世界:当组装一 阅读全文
posted @ 2020-12-06 16:52 老鼠不上树 阅读(102) 评论(0) 推荐(0)
状态模式
摘要:State Patterns GoF定义:使一个对象在其自身状态发生变化时其行为也对应发生变化。这个对象看起来像是改变了它的类 概念 用事实说话【滑稽】 例子 现实世界:想象在网络连接中,这里负责连接的对象会有很多种状态(正在连接、连接成功、连接关闭) 代码世界:假设一个系统只能处理固定数量个任务, 阅读全文
posted @ 2020-12-05 20:17 老鼠不上树 阅读(65) 评论(0) 推荐(0)
备忘录模式
摘要:Memento Patterns GoF定义:在不破坏(类)封装的情况下,获取一个对象当前的状态,使得之后这个对象可以恢复成这个状态 概念 目的是为了保存对象当前的状态,这样在之后可以恢复成这个状态。这个模式中有三个角色,分别为备忘录(memento),看管人(caretaker),创始人(orig 阅读全文
posted @ 2020-12-04 22:18 老鼠不上树 阅读(47) 评论(0) 推荐(0)
工厂方法模式
摘要:Factory Method Patterns GoF定义:定义一个接口来创建它的对象,但是由子类(实现类)来决定到底实例化哪个类。工厂方法使得类的实例化过程推迟到子类(而不是直接实例化一个类) 概念 用事实说话【滑稽】 例子 现实世界:假设你有两种电视,一种是LED屏幕,一种是LCD屏幕,当它们出 阅读全文
posted @ 2020-12-04 00:08 老鼠不上树 阅读(85) 评论(0) 推荐(0)
外观模式(门面模式)
摘要:Facade Patterns GoF定义:将系统中的一系列接口放到一个接口当中,这个高层级的接口是为了让子系统使用更方便 概念 这是松耦合模式中的一种,这里主要分析它的抽象结构,通过暴露一个简单接口,来隐藏复杂的细节 例子 现实世界:假如你举办一个生日聚会,那么你可以找一个聚会组织者,告诉他聚会的 阅读全文
posted @ 2020-12-02 23:21 老鼠不上树 阅读(51) 评论(0) 推荐(0)
迭代器模式
摘要:Iterator Patterns GoF定义:在不暴露底层保存数据的结构情况下实现对集合对象的遍历(访问) 概念 迭代器经常被用来遍历容器(Container)中的元素 例子 现实世界:如果有两个公司,公司A使用链表保存职员信息,而公司B用大数组来保存职员信息,当两个公司合并,它们想用一种方式来查 阅读全文
posted @ 2020-12-01 21:16 老鼠不上树 阅读(78) 评论(0) 推荐(0)
命令模式
摘要:Command Patterns GoF定义:将请求作为一个对象来处理。使得可以使用不同的请求、队列或者日志请求来参数化客户端。并且支持撤销操作。 概念 通常,四个概念是相互关联的 command object:在接收端可以调用某个特定的方法,它保存着可以调用receiver方法的参数 invoke 阅读全文
posted @ 2020-11-30 20:03 老鼠不上树 阅读(79) 评论(0) 推荐(0)
适配器模式
摘要:Adapter Patterns GoF定义:将一个类的接口转换为客户端接受的另一个接口。这个模式让接口不兼容的类也能正常工作 概念 最好的说明这个模式的方式就是例子(【滑稽】) 例子 现实世界:手机充电器为例,如果没有支持这个充电器的插板,那么可以使用适配器来辅助充电。翻译工作也算是这个模式的一个 阅读全文
posted @ 2020-11-29 17:08 老鼠不上树 阅读(90) 评论(0) 推荐(0)
策略模式
摘要:Strategy Patterns(Policy Patterns) GoF定义:定义一系列算法,将每一个都封装起来,让它们可以互相替换。这个模式让算法在客户端之间保持独立性 概念 我们可以在运行时(runtime)动态选择算法的行为 例子 现实世界:在一场足球比赛中,如果A领先B 1:0,那么对于 阅读全文
posted @ 2020-11-28 18:03 老鼠不上树 阅读(79) 评论(0) 推荐(0)
模板方法模式
摘要:Template Method Patterns Gof定义:把某个操作中的算法骨架定义好,将一些步骤下放到一些子类。模板方法模式允许在不改变算法结构的前提下让子类来重新定义一个算法的某些步骤 概念 在模板方法中,定义一个算法的最精简且最重要(essential)的结构,然后将一些功能放在子类去实现 阅读全文
posted @ 2020-11-27 17:03 老鼠不上树 阅读(59) 评论(0) 推荐(0)

1 2 下一页