
设计模式
记录java的23种设计模式,方便自己查看与学习
严严严的博客
做一些技术备案,方便学习
展开
-
JAVA设计模式之责任链模式
文章目录一、责任链(Chain of Responsibility)模式二、责任链模式的结构三、源码四、纯的与不纯的责任链模式五、总结一、责任链(Chain of Responsibility)模式顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行...原创 2020-04-13 10:42:10 · 355 阅读 · 0 评论 -
JAVA设计模式之模版模式
文章目录一、 模板设计模式在书中定义:二、 模板模式的类图:三、 实例说明四、 优点五、不足六、使用场景一、 模板设计模式在书中定义:定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构但可重定义该算法的某些特定步骤。通俗点的理解就是 :完成一件事情,有固定的数个步骤,但是每个步骤根据对象的不同,而实现细节不同;就可以在父类中定义一个完成该事情的总方法,按...原创 2020-03-16 17:20:43 · 265 阅读 · 0 评论 -
JAVA设计模式之策略模式
文章目录一、什么是策略模式二、具体案例三、问题和优化四、策略模式的应用一、什么是策略模式1、定义:策略模式(StrategyPattern):定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。是一种对象行为型模式。打个比方说,我们出门的时候会选择不同的出行方式,比如骑自行车、坐公交、坐火车、坐飞机、坐火箭等等,这些出行方式,每一种都是一个策略。在打个比方,我们购物下单需要支付...原创 2020-03-12 11:25:40 · 304 阅读 · 0 评论 -
JAVA设计模式之代理模式
代理模式是Java常见的设计模式之一。所谓代理模式是指客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象。为什么要采用这种间接的形式来调用对象呢?一般是因为客户端不想直接访问实际的对象,或者访问实际的对象存在困难,因此通过一个代理对象来完成间接的访问。在现实生活中,这种情形非常的常见,比如请一个律师代理来打官司。代理模式的UML图动态代理从UML图中,可以看出代理...原创 2019-12-09 16:39:10 · 295 阅读 · 0 评论 -
JAVA设计模式之享元模式
一、概述享元模式:“享”就是分享之意,指一物被众人共享,而这也正是该模式的终旨所在。享元模式有点类似于单例模式,都是只生成一个对象来被共享使用。享元的目的是为了减少不会要额内存消耗,将多个对同一对象的访问集中起来,不必为每个访问者创建一个单独的对象,以此来降低内存的消耗。这里有个问题,那就是对共享对象的修改,为了避免出现这种情况,我们将这些对象的公共部分,或者说是不变化的部分抽取出来形成一...原创 2019-10-25 14:34:41 · 250 阅读 · 0 评论 -
JAVA设计模式之组合模式
一、组合模式的定义与特点组合(Composite)模式的定义:有时又叫作部分-整体模式,它是一种将对象组合成树状的层次结构的模式,用来表示“部分-整体”的关系,使用户对单个对象和组合对象具有一致的访问性。组合模式的主要优点有:1、组合模式使得客户端代码可以一致地处理单个对象和组合对象,无须关心自己处理的是单个对象,还是组合对象,这简化了客户端代码;即:高层模块调用简单2、更容易在组合...原创 2019-10-24 10:35:37 · 200 阅读 · 0 评论 -
JAVA设计模式之外观模式
java设计模式之外观模式(门面模式)一、概念介绍外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。二、角色及使用场景简单来说,该模式就是把一些复杂的流程封装成一个接口供给外部用户更简单的使用。这个模式中,设计到3个角色。1).门...原创 2019-10-11 15:00:38 · 210 阅读 · 0 评论 -
JAVA设计模式之适配器模式
适配器模式是一种结构型设计模式。适配器模式的思想是:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。举例:我有苹果的充电器,但是我是安卓的手机,我就需要一个充电转换器将苹果充电器转换为安卓充电器,诸恶个转换器即使适配器;适配器模式涉及3个角色:源(Adaptee):需要被适配的对象或类型,相当于插头。适配器(Adapter):...原创 2019-04-17 10:09:50 · 178 阅读 · 0 评论 -
JAVA设计模式之单例模式
1、什么是单利设计模式?单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。2、具体实现需要:(1)将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象。(2)在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型。(3)定义一...原创 2019-03-29 11:09:36 · 124 阅读 · 0 评论 -
JAVA设计模式之装饰器模式
一、概述装饰器模式是一种结构型设计模式,可以做到在不改变原来对象功能的情况下,向原有的对象添加新的功能,起到一个装饰的作用。具体的做法是创建一个装饰器类,用来包装原有的类,在不改变原有类方法的情况下,为原有类添加新的功能。1、什么时候使用在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时。一种情况是,可能有大量...原创 2019-04-02 17:04:03 · 244 阅读 · 0 评论 -
JAVA设计模式之原型模式
1、 原型模式概念该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。java中复制通过clone()实现的。clone中涉及深、浅复制。深、浅复制的概念如下:⑴浅复制(浅克隆) 型对象的成员变量是值类型,将复制一份给克隆对象值,则将引用对象的地址复制一份给克隆对象,也就是说原型对象和克隆对象的成员变量指向相同的内存地址。 Object类提供的方法clo...原创 2019-03-28 11:41:35 · 165 阅读 · 0 评论 -
JAVA设计模式之建造者模式
一、什么是建造者模式建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。建造者模式的角色定义,在建造者模式中存在以下4个角色:1、builder:为创...原创 2019-03-26 13:59:14 · 196 阅读 · 0 评论 -
JAVA设计模式之工厂模式
1.工厂模式简介工厂模式用于对象的创建,使得客户从具体的产品对象中被解耦。2.工厂模式分类这里以制造phone的例子开始工厂模式设计之旅。我们知道phone只是一种泛举,在选择phone时需要指定具体的手机品牌:小米、华为、苹果等等。/** * Created by yd on 2019/3/25. * 产品的抽象接口:手机 */public interface Phone {...原创 2019-03-25 14:33:30 · 232 阅读 · 0 评论 -
JAVA设计模式之观察者模式
一、观察者模式的定义:简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监听一个主题对象。这样一来,当被观察者状态发生改变时,需要通知相应的观察者,使这些观察者对象能够自动更新。观察者模式多用于实现订阅功能的场景,例如微博的订阅,当我们订阅了某个人的微博账号,当这个人发布了新的消息,就会通知我们。二、观察者模式的实现:1、Subject(被观察的对象接口):规定Conc...原创 2019-03-20 14:15:27 · 139 阅读 · 0 评论