![](https://img-blog.csdnimg.cn/20200430130535133.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
文章平均质量分 81
设计模式技术分享专栏
大脑补丁
怕什么真理无穷,进一寸有一寸的欢喜。
展开
-
设计模式之生产者消费者模式
本文通过`wait()`和`notify()`方法,实现和分析消费者和生产者模式,此模式优雅的实现了生产者和消费者的解耦,并且支持并发。通过手写一份生产者消费者模式的代码,进行讲解。学习领悟了这种设计模式,才可以真正理解`消息中间件`实现的底层思想,比如Kafka、RocketMQ、RabbitMQ等。原创 2020-10-31 17:06:45 · 2129 阅读 · 1 评论 -
设计模式之组合模式
组合模式(Composite Pattern)将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。组合模式简介组合模式又叫部分整体模式,隶属于结构型模式,将对象组装成树形结构,该模式创建了一个包含自己对象组的类,用以修改相同的对象组原创 2017-10-22 11:27:57 · 892 阅读 · 0 评论 -
设计模式之迭代器模式
迭代器模式(Iterator Pattern)提供了一个方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。迭代器模式简介迭代器模式(Iterator Pattern)是Java中常用的设计模式,主要用在遍历整个集合对象。原创 2017-11-04 23:00:08 · 390 阅读 · 0 评论 -
设计模式之桥接模式
桥接模式(Bridge Pattern)将抽象部分与它的实现部分分离,使它们都可以独立地变化。桥接模式(Bridge Pattern)是让抽象类和它的派生类用来实现自己的对象,从而实现抽象部分和实现部分分离,而不是让抽象和实现分离,当抽象变化和实现变化都不会影响使用。原创 2017-12-07 16:27:38 · 356 阅读 · 0 评论 -
设计模式之单例模式
单例模式(Singleton Pattern)保证一个类仅有一个实例,并提供一个它的全局访问点。单例模式为了防止多次实例化一个对象,为该对象提供一个访问该实例的方法,让类自身负责保存它唯一的实例,这个类可以保证没有其他实例可以被创建。1.懒汉式2.饿汉式3.双重校验锁式原创 2017-12-01 21:33:14 · 208 阅读 · 0 评论 -
设计模式之命令模式
一.命令模式的简介 命令模式(Command Pattern)将一个请求封装为一个对象,从而使你用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。命令模式的核心思路: 在程序设计中,一个“行为请求者”和“行为实现者”往往是紧密耦合的,当某些情况下,要对行为进行记录、撤销等操作的时候,就必须对行为实现者和请求者进行解耦为松耦合模式。命令模式应用案例: S原创 2018-01-15 17:47:23 · 271 阅读 · 0 评论 -
设计模式之职责链模式
职责链模式(Chain of Responsibility Pattern)使多个对象都有机会处理请求,从而避免请求发送者和请求的接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。客户端只需要发送请求,职责链上的处理者负责处理,客户端不用关心请求是如何处理的以及请求是如何依次传递的。可用来实现了对请求的过滤、拦截等操作。原创 2018-01-16 13:48:45 · 582 阅读 · 2 评论 -
设计模式之中介者模式
一.中介者模式的简介 中介者模式(Mediator Pattern)用一个中介对象来封装一系列的对象的交互。中介者使各对象不需要显式地互相引用,从而使其耦合松散,而且可以独立地改变他们之间的交互,该模式属于行为型模式。中介者模式的核心思路: 多个对象之间若需交互,为防止这些对象互相引用(调用)的混乱,为降低这一系列对象之间的耦合度,可以使用一个中介者对象(Mediator)来管理(封原创 2018-02-06 22:14:15 · 249 阅读 · 0 评论 -
设计模式之享元模式
一.享元模式的简介 享元模式(FlyWeight Pattern)运用共享技术有效地支持大量细粒度的对象,该模式属于结构型模式。享元模式的核心思路:通过重用现有对象,减少对象数量的方式,优化应用所需的对象结构的方式 二.享元模式的设计类图 (图片加载慢,多刷新几下,耐心等待……)注:享元工厂类(FlyWeightFactory)和享元抽象类(FlyWeight),...原创 2018-03-26 17:17:42 · 197 阅读 · 0 评论 -
设计模式之备忘录模式
备忘录模式(Memento Pattern)在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将对象恢复到原先保存的状态。备忘录模式(Memento Pattern)适用于功能比较复杂,但需要维护和记录的历史类,或者需要保存属性只是众多属性中的一小部分时,用备忘录模式可以将信息还原。原创 2017-09-20 16:27:09 · 274 阅读 · 0 评论 -
设计模式之适配器模式
适配器模式(Adapter Pattern)将一个类的接口转化为客户希望的另外一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式(Adapter Pattern)适配器模式主要应用于希望复用一些现存的类,但是接口与复用环境要求不一致的情况。原创 2017-09-12 14:38:26 · 306 阅读 · 0 评论 -
设计模式之状态模式
状态模式(State Pattern)当一个对象的内在状态改变时,允许改变其行为。这个对象看起来像是改变了其类。状态模式简介状态模式(State Pattern)解决的是当控制一个对象状态的条件表达式过于复杂时的情况,把状态的判断逻辑转移到表示不同状态的一系列类当中,把复杂的判断逻辑简化了。二.状态模式的实例讲解案例:对一个人一天各个时刻的工作状态进行判断,根据状态改变工作行为。原创 2017-09-07 09:52:49 · 288 阅读 · 0 评论 -
设计模式之简单工厂模式
前言:简单工厂模式是常用的设计模式,该模式解决了如何实例化对象的问题。一. 简单工厂的简介:1. 工厂的含义:工厂是一个负责创建对象的类。2. 面向对象编程理解:面向对象的编程,目的是为了让代码做到易维护、易扩展、易复用。生活中的实例: 像活字印刷术一样,一行文字,可以替换任意一个,也可以在任意位置新增一个字,每个字还可以重复使用,这使得字与字之间的耦合度,降到最低。在面向对象的编程中,用封装、继承原创 2017-06-28 10:07:28 · 366 阅读 · 0 评论 -
设计模式之抽象工厂模式
前言:抽象工厂模式(Abstract Factory Pattern)是提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。一. 抽象工厂模式的简介:优点:当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象,方便切换产品系列。缺点:产品族扩展非常困难,要增加一个系列的某一产品,既要在抽象的 Creator 里加代码,又要在具体的里面加代码。原创 2017-06-30 14:50:58 · 279 阅读 · 0 评论 -
设计模式之策略模式
前言:策略模式(strategy Pattern):定义了算法家族,分别封装;算法之间可以替换,但不会影响使用算法的客户。一.策略模式的简介:类的作用:面向对象的过程中,并不是类越多越好,类的划分基础是抽象,类是具有相同属性和功能的对象集合。策略类的作用:面向对象中,类的作用就是封装变化点,将可变化的算法进行封装,就是策略类。原创 2017-07-01 20:50:38 · 211 阅读 · 0 评论 -
设计模式之装饰模式
前言:装饰模式是动态的给一些对象添加一些职责,通过装饰模式比生成子类更灵活。就增加功能来说,装饰模式比生成子类更灵活。一.装饰模式的简介装饰模式是为已有的功能添加更多功能的一种方式。原创 2017-07-05 21:38:02 · 304 阅读 · 0 评论 -
设计模式之代理模式
前言:代理模式是为其他对象提供一种代理可以控制对这个对象的访问。一.代理模式的简介代理其实就是真实对象的代表。让其他对象间接访问对象,在这间接访问的过程中,可以附加上其他操作。原创 2017-07-09 12:58:35 · 250 阅读 · 0 评论 -
设计模式之原型模式
原型模式(Prototype Pattern)是用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式简介:原型模式就是通过一个对象来创建对象,隐藏了创建细节。模型模式主要应用的是对象的深复制,即对象的克隆。原创 2017-07-22 11:24:43 · 448 阅读 · 0 评论 -
设计模式之模板方法模式
前言模板方法模式(Template Method Pattern)定义一个操作中的算法的骨架,而将一些步骤延迟到子类中去。模板模式使得子类可以不改变算法的结构既可以重定义该算法的某些特定步骤。模板方法模式的简介模板方法模式,就是把不变的行为搬到了超类,去除子类中的重复代码,来体现他的优势。模板方法模式的优点: 模板方法模式提供了一个很好的代码复用平台。原创 2017-07-29 10:02:08 · 285 阅读 · 0 评论 -
设计模式之外观模式
外观模式(Facade Pattern)为子系统的一组接口提供一个一致界面。定义一个高层接口,使得子系统更加容易使用。原创 2017-08-07 14:08:15 · 442 阅读 · 0 评论 -
设计模式之工厂模式
前言:工厂模式是对简单工厂的改进,避免对增加新的需求对象时,不断地修改工厂类,但也没有封闭修改,而是将修改的地方转移到了客户端。一. 工厂模式的简介:工厂模式:定义了一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法将类的实例化延迟到了子类中。工厂模式和简单工厂模式的对比:工厂克服了简单工厂违背的开放——封闭原则,又保持了简单工厂封装对象的创建过程的优点工厂模式的缺点:每增加一个产品,都要增原创 2017-06-29 11:40:08 · 332 阅读 · 0 评论