随笔分类 -  设计模式

摘要:什么是建造者模式 发现很多框架的源码使用了建造者模式,看了一下觉得挺实用的,就写篇文章学习一下,顺便分享给大家。 建造者模式是什么呢?用一句话概括就是建造者模式的目的是为了分离对象的属性与创建过程,是的,只要记住并理解红字的几个部分,建造者模式你就懂了。 为什么需要建造者模式 建造者模式是构造方法的 阅读全文
posted @ 2020-11-17 14:37 hiram-QI 阅读(116) 评论(0) 推荐(0)
摘要:责任链模式的定义与特点 责任链模式的定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。 标准的责任链模式,个人总结下来有如下几个特点: 链上的每个对象都有机会处理请求 链上的每个对象都持有下一个要处理 阅读全文
posted @ 2020-11-09 15:52 hiram-QI 阅读(156) 评论(0) 推荐(0)
摘要:装饰器模式 装饰器模式又称为包装(Wrapper)模式。装饰器模式以多客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 装饰器模式的结构 通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生子类来扩展,抑或是使用对象组合的方式。显然,直接修改对应的类的方式并不可取,在面向对象的设计 阅读全文
posted @ 2020-11-04 11:14 hiram-QI 阅读(129) 评论(0) 推荐(0)
摘要:外观模式 外观模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的外观对象进行。外观模式是一个高层次的接口,使得子系统更易于使用。 医院的例子 现代的软件系统都是比较复杂的。假如把医院比作一个子系统,按照部门职能,这个系统划分为挂号、门诊、划价、化验、收费、取药等。看病的人要与这些部门打交 阅读全文
posted @ 2020-10-31 10:24 hiram-QI 阅读(125) 评论(0) 推荐(0)
摘要:观察者模式 观察者模式也叫作发布-订阅模式,也就是事件监听机制。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。 观察者模式的结构 一个软件系统常常要求在某一个对象状态发生变化时,某些其他的对 阅读全文
posted @ 2020-10-28 15:36 hiram-QI 阅读(130) 评论(0) 推荐(0)
摘要:代理模式 代理模式的定义很简单:给某一对象提供一个代理对象,并由代理对象控制对原对象的引用。 代理模式的结构 有些情况下,一个客户不想或者不能够直接引用一个对象,可以通过代理对象在客户端和目标对象之间起到中介作用。代理模式中的角色有: 1、抽象对象角色 声明了目标对象和代理对象的共同接口,这样一来在 阅读全文
posted @ 2020-10-26 11:18 hiram-QI 阅读(92) 评论(0) 推荐(0)
摘要:迭代器模式 迭代器模式又叫做游标(Cursor)模式,其作用是提供一种方法访问一个容器元素中的各个对象,而又不暴露该对象的内部细节。 迭代器模式结构 迭代器模式由以下角色组成: 1、迭代器角色 负责定义访问和遍历元素的接口 2、具体迭代器角色 实现迭代器接口,并要记录遍历中的当前位置 3、容器角色 阅读全文
posted @ 2020-10-22 09:56 hiram-QI 阅读(137) 评论(0) 推荐(0)
摘要:适配器模式 适配器模式说的是,可以把一个类的接口变换成客户端所期待的另一种接口,使得原本因接口不匹配而无法在一起工作的两个类可以一起工作。 适配器模式的用途 适配器模式的用途,在网上找了一幅图,挺形象的: 比方说我有一个台灯,其插头是标准的两相的交流电插头,即阳极、阴极。我旅游到了一个地方想用自己的 阅读全文
posted @ 2020-10-20 10:43 hiram-QI 阅读(120) 评论(0) 推荐(0)
摘要:策略模式 策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分开。策略模式通常是把一系列的算法包装到一系列的策略类里面,作为一个 阅读全文
posted @ 2020-10-19 21:14 hiram-QI 阅读(152) 评论(0) 推荐(0)
摘要:原型模式 原型模式属于对象的创建模式,通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象,这就是原型模式的用意。 原型模式结构 原型模式要求对象实现一个可以克隆机身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例。这样一来,通过原型实例创建 阅读全文
posted @ 2020-10-15 20:59 hiram-QI 阅读(138) 评论(0) 推荐(0)
摘要:前言 非常重要,单例模式是各个Java项目中必不可少的一种设计模式。本文的关注点将重点放在单例模式的写法以及每种写法的线程安全性上。所谓"线程安全性"的意思就是保证在创建单例对象的时候不存在竞争,只会创建出一个单例对象。 单例模式 作为对象的创建模式,单例模式确保其某一个类只有一个实例,而且自行实例 阅读全文
posted @ 2020-10-09 16:27 hiram-QI 阅读(142) 评论(0) 推荐(0)
摘要:工厂方法模式 工厂方法模式是类的创建模式。工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工厂推迟到子类中。 工厂方法模式 工厂方法模式是对简单工厂模式进一步抽象的结果。 假如是不使用反射的工厂方法模式,那么所有的if... else if...else都放在工厂类中,势必造成工厂类的 阅读全文
posted @ 2020-09-21 10:49 hiram-QI 阅读(187) 评论(0) 推荐(0)
摘要:简单工厂模式 简单工厂模式是类的创建模式,又叫做静态工厂方法模式。简单工厂模式由一个工厂对象决定生产出哪一种产品类的实例。 为什么要使用简单工厂模式 原因很简单:解耦。 A对象如果要调用B对象,最简单的做法就是直接new一个B出来。这么做有一个问题,假如C类和B类实现了同一个接口/继承自同一个类,系 阅读全文
posted @ 2020-09-08 16:14 hiram-QI 阅读(171) 评论(0) 推荐(0)
摘要:设计模式是什么 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易地被他人理解、保证代码可靠性。毫无疑问,设计模式于己于人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石脉络, 阅读全文
posted @ 2020-09-01 14:07 hiram-QI 阅读(130) 评论(0) 推荐(0)