
设计模式
设计模式
随风去。
莫道浮云终蔽日,严冬过尽春蓓蕾。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式之备忘录模式
备忘录模式: 备忘录模式(Memento Pattern) 又称为快照模式(Snapshot Pattern) 或令牌模式(TokenPattern) , 是指在不破坏封装的前提下, 捕获一个对象的内部状态, 并在对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态,属于行为型模式。 在软件系统中,备忘录模式可以为我们提供一种“后悔药”的机制,它通过存储系统各个历史...原创 2020-03-25 14:47:00 · 118 阅读 · 0 评论 -
设计模式之状态模式
状态模式: 状态模式( State Pattern)也称为状态机模式( State Machine pattern),是允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类,属于行为型模式。 允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类状态模式中类的行为是由状态决定的,不同的状态下有不同的行为。其意图是让一个对象在其内部改变的时候,其行为也...原创 2020-03-25 14:49:00 · 232 阅读 · 0 评论 -
设计模式之解释器模式
解释器模式: 解释器模式(Interpreter Pattern) 是指给定一门语言, 定义它的语法的一种表示, 并定义一个解释器,该解释器使用该表示来解释语言中的句子。是一种按照规定的语法进行解析的模式,属于行为型模式。 就比如编译器可以将源码编译解释为机器码, 让CPU能进行识别并运行。解释器模式的作用其实与编译器一样,都是将一些固定的语法进行解释,构建出一个解释句子的解释...原创 2020-03-25 15:13:00 · 214 阅读 · 0 评论 -
设计模式之中介者模式
中介者模式: 中介者模式(Mediator Pattern) 又称为调解者模式或调停者模式。用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。属于行为型模式。 中介者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使它们可以松散耦合。当某些对象之间的作用发生改变时,不会立即影响其他的...原创 2020-03-25 15:11:00 · 130 阅读 · 0 评论 -
设计模式之组合模式
组合模式: 我们知道古代的皇帝想要管理国家,是不可能直接管理到具体每一个老百姓的,因此设置了很多机构,比如说三省六部,这些机构下面又有很多小的组织。他们共同管理着这个国家。再比如说,一个大公司,下面有很多小的部门,每一个部门下面又有很多个部门。说到底这就是组合模式。组合模式(Composite Pattern) 也称为整体-部分(Part-Whole) 模式, 它的宗旨是通过将单个对...原创 2020-03-25 15:09:00 · 183 阅读 · 0 评论 -
设计模式之享元模式
享元模式: 面向对象技术可以很好地解决一些灵活性或可扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。享元模式正是为解决这一类问题而诞生的。 享元模式(Flyweight Pattern) 又称为轻呈级模式, 是对象池的一种实现。类似于线程池, 线程池可以避免不停的创建和销毁多个对象,消耗性能。提供了减少对象数量从...原创 2020-03-24 19:16:00 · 107 阅读 · 0 评论 -
设计模式之桥接模式
桥接模式: 桥接模式(Bridge Pattern) 也称为桥梁模式、接口(Interface) 模式或柄体(Hand ie and Body) 模式,是将抽象部分与它的具体实现部分分离,使它们都可以独立地变化,属于结构型模式。 解耦轴象和实现,使得两者可以独立的变化。桥接模式主要目的是通过组合的方式建立两个类之间的联系,而不是继承。但又类似于多重继承方案,但是多重继承方案往往违...原创 2020-03-25 15:07:00 · 97 阅读 · 0 评论 -
设计模式之门面模式
门面模式: 门面模式(Facade Pattern) 又叫外观模式, 提供了一个统一的接口, 用来访问子系统中的一群接口。其主要特征是定义了一个高层接口,让子系统更容易使用,属于结构性模式。 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。其实,在我们日常的编码工作中,我们都在有意无意地大量使用门面模式,但凡只要高...原创 2020-03-24 17:04:00 · 160 阅读 · 0 评论 -
设计模式之访问者模式
访问者模式: 访问者模式(Visitor Pattern) 是一种将数据结构与数据操作分离的设计模式。是指封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元索的新的操作。属于行为型模式。 访问者模式被称为最复杂的设计模式,并且使用频率不高,设计模式的作者也评价为:大多情况下,你不需要使用访问者模式,但是一旦需要使用它时,那就真的需要使用了...原创 2020-03-24 16:24:00 · 187 阅读 · 0 评论 -
设计模式之命令模式
命令模式: 命令模式(Command Pattern) 是对命令的封装, 每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式解耦了请求方和接收方,请求方只需请求执行命令,不用关心命令是怎样被接收,怎样被操作以及是否被执行…等.命令模式属于行为型模式。 将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者...原创 2020-03-24 15:02:00 · 159 阅读 · 0 评论 -
设计模式之迭代器模式
迭代器模式: 迭代器模式(Iterator Pattern) 又称为游标模式(Cursor Pattern) , 它提供一种顺序访问集合/容器对象元素的方法,而又无须暴露集合内部表示。迭代器模式可以为不同的容器提供一致的遍历行为,而不用关心容器内容元素组成结构,属于行为型模式。 提供一种顺序访问集合/容器对象元素的方法,而又无须暴露集合内部表示,迭代器模式的本质是抽离集合对象迭...原创 2020-03-24 14:39:00 · 138 阅读 · 0 评论 -
设计模式之建造者模式
建造者模式: 建造者模式(Builder Pattern) 是将一个复杂对象的构建过程与它的表示分离, 使得同样的构建过程可以创建不同的表示,属于创建型模式。使用建造者模式对于用户而言只需指定需要建造的类型就可以获得对象,建造过程及细节不需要了解。建造者模式适用于创建对象需要很多步骤,但是步骤的顺序不一定固定。如果一个对象有非常复杂的内部结构(很多属性),可以将复杂对象的创建和使用进...原创 2020-03-24 14:02:00 · 106 阅读 · 0 评论 -
设计模式之责任链模式
责任链模式: 责任链模式(Chain of Responsibility Pattern) 是将链中每一个节点看作是一个对象, 每个节点处理的请求均不同,且内部自动维护一个下一节点对象。当一个请求从链式的首端发出时,会沿着链的路径依次传递给每一个节点对象,直至有对象处理这个请求为止。属于行为型模式。 使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些...原创 2020-03-24 14:25:00 · 185 阅读 · 0 评论 -
设计模式之单例模式及原型模式
单例模式: 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 应用场景:保证一个类仅有一个实例,并提供一个访问它的全局访...原创 2019-01-21 16:16:00 · 1067 阅读 · 0 评论 -
设计模式之装饰者模式及观察者模式
装饰器模式: 装饰器模式(Decorator Pattern)(包装)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。主要...原创 2019-01-23 10:46:00 · 1010 阅读 · 0 评论 -
设计模式之委派模式及适配器模式
委派模式: 委派模式不属于23种设计模式, 主要角色有三种: 抽象任务角色, 委派者角色, 具体任务角色.实现层面上, 定义一个抽象接口, 它有若干实现类, 他们真正执行业务方法, 这些子类是具体任务角色; 定义委派者角色也实现该接口, 但它负责在各个具体角色实例之间做出决策, 由它判断并调用具体实现的方法.委派模式对外隐藏了具体实现, 仅将委派者角色暴露给外部, 在spring中...原创 2019-01-22 17:22:00 · 992 阅读 · 0 评论 -
设计模式之策略模式及模板模式
策略模式: 其思想是针对一组算法,将每一种算法都封装到具有共同接口的独立的类中,从而是它们可以相互替换。策略模式的最大特点是使得算法可以在不影响客户端的情况下发生变化,从而改变不同的功能。意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。应用实例: 1、诸葛亮的锦囊妙计,每一个锦囊就是一个策略。 2、旅行的出游方式,选择骑自行车、坐汽车,每一种旅行方式都...原创 2019-01-22 14:57:00 · 1005 阅读 · 0 评论 -
设计模式之代理模式
代理模式: 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。Spring 中让我们耳熟能详的 AOP 的底层就是用到了动态代理实现的,以处理调用代理对象的处理方法前后的特殊处理。优点: 1、职责清晰,真实的角色就是实现实际的业务逻辑,不用关心其他非本...原创 2019-01-22 09:40:00 · 908 阅读 · 0 评论 -
设计模式之工厂模式
工厂模式: 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。简单工厂模式(Factory): 应用场景:又叫做静态工厂方法(StaticFactory Method)模式,...原创 2019-01-21 15:33:00 · 919 阅读 · 0 评论 -
设计模式概要
设计模式简介: 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易...原创 2019-01-21 15:18:00 · 953 阅读 · 0 评论