设计模式
ObsessionLife
这个作者很懒,什么都没留下…
展开
-
[设计模式] - No.1 详解简单工厂模式、工厂模式和抽象工厂模式
在Java设计模式中,工厂模式分为三种,分别为: a.简单工厂模式 b.工厂方法模式 c.抽象工厂模式 这三种模式均属于设计模式中的创建性模式。但是,有的时候我们又会看到23种Java设计模式中仅含有工厂方法模式(上述的简单工厂模式、工厂方法模式合并)和抽象工厂模式。在我们刚刚学习设计模式的时候,这三种模式总是很容易混淆,或者说不清楚,在这篇文章中,我们会结合代码来很好的解释一下。 1.原创 2017-03-22 09:34:50 · 454 阅读 · 0 评论 -
[设计模式] - No.11 Bridge模式
Bridge模式 在学习Bridge模式的时候,一直想不通这个模式的具体应用场景,不知道为什么要使用这个模式,直到今天又重新看了一遍《图解设计模式》课后的讲解加上自己的思考,才对这个模式有了更深的理解。 假设我们有这样一个场景,我们希望实现某种打印字符串的功能,这个功能在Windows,Mac和Linux上都可以使用,那么最简单的实现方案是我们实现三个类WindowsPrint,MacPrint和...原创 2018-12-13 11:45:37 · 225 阅读 · 0 评论 -
[设计模式] - No.10 Builder模式
Builder 模式 在《图解设计模式》这本书中,对Builder模式的解释是,用于组装具有复杂结构的实例的设计模式。在这里,我通过一个接地气的小例子,来描述一下Builder设计模式究竟做了什么。 加入有一天,你突然想盖一栋别墅,首先你需要找一个会盖房子的建筑师,告诉他“给我盖一个别墅”,让他帮你盖这栋房子。 建筑师并不会直接的盖房子,他只会指挥施工队盖房子。它会指挥调度施工队,先打好地基,然后...原创 2018-12-04 10:34:09 · 171 阅读 · 0 评论 -
[设计模式] - No.9 Prototype模式
Prototype 模式 在Java中,如果我们一般使用new XXClass()的方式获取一个实例。而Prototype提供了这样一种方式,既不通过new的方式获取实例,同时和工厂方法获取实例的方法不同。该模式使用类对应的对象来产生新的实例。 在介绍Prototype模式之前,我们要首先介绍Java中的clone()和Cloneable。我们知道,在java中,所有的类都继承于一个叫Object...原创 2018-12-04 10:30:29 · 233 阅读 · 0 评论 -
[设计模式] - No.8 Singleton模式
Singleton模式 在程序运行的时候常常是使用new的方法创建一个实例。对于某一个类(例如工具类),如果我们希望在任何情况下该类只有一个实例的话,我们需要使用单例模式。单例模式是很简单又被广为使用的一个设计模式: public class Singleton { //饿汉模式 private static Singleton singleton = new Singleton...原创 2018-12-04 10:05:45 · 167 阅读 · 1 评论 -
[设计模式] - No.7 Factory Method 模式
Factory Method 模式 Factory Method模式和之前的Template Method模式有相似的地方。在Template Method中,我们在父类中使用模板方法用于定义具体的处理流程,如果我们使用这个具体方法来产生子类实例的话,这样就是Factory Method 模式。我们结合书中的示例代码来看(修改了一些) AbstractFactory.java public abs...原创 2018-12-04 10:03:32 · 213 阅读 · 0 评论 -
[设计模式] - No.6 Template Method 模式
Template Method顾名思义,就是说父类在其内部定义了一些抽象函数,然后定义了一个模板方法,并在模板方法中调用了这些抽象方法。父类在模板方法中定义了某个功能处理流程的框架,而子类则实现具体的处理。这个例子非常简单,其核心的理念就是使逻辑处理通用化。 我们通过书中的一个简单的例子来看一下Template Method的具体实现方法: 首先,我们定义一个父类AbstarctDisplay.j...原创 2018-11-23 17:08:55 · 157 阅读 · 0 评论 -
[设计模式] - No.5 Adapter模式
Adapter模式 1. 什么是Adapter模式 Adapter模式中文名称叫适配器模式,就像我们的电脑电源适配器将直流电源转换为交流电源一样,适配器模式可以将我们现有的某些已经具备相关类,转换为我们需要的类型。Adapter模式又称为Wrapper模式,相信这个名词很多做过Java Web项目的同学并不陌生。当我们从数据库中查询出来的数据虽然具备了我们需要的一些字段,但是并不能直接被某些接口使...原创 2018-11-23 17:06:00 · 148 阅读 · 0 评论 -
[设计模式] - No.4 Iterator 模式
Iterator 模式 本系列的文章主要是记录设计模式的学习过程,围绕《图解设计模式》和我自身对于设计模式的理解。在文章中出现的代码多为《图解设计模式》这本书中的代码。书中一共包含23个设计模式,这篇文章作为这个系列的第一篇文章。由于《图解设计模式》这本书内容十分简单,非常适合入门,如果对于设计模式想要进一步地研究,可以参阅一些其他书籍。 Iterator模式是一种非常简单的设计模式,其设计出来的...原创 2018-11-23 17:03:54 · 149 阅读 · 0 评论 -
[设计模式] - No.3 建造者模式
今天学习了设计模式中的建造者模式(Builder Pattern),这个模式也是属于四种设计模式中的创建型模式,四种模式如下所示: 建造者模式结构图如下: 在建造者模式中,我们需要用到四种角色: 1. Director:指挥者,根据用户需求来构建小人对象 2. Builder:建造者接口,用于创造Product各个部件指定的接口。内含建造Product的方法 3.原创 2017-05-20 10:55:06 · 282 阅读 · 0 评论 -
[设计模式] - No.2 Singleton 单例模式
最近面试中汽研,考官问到了单例模式。然后没有怎么搞清楚,结果在笔试的时候又考到了,特此学习一下,在这里记录。 单例模式,简单地说,就是我们在某些场景下可能需要一些单例类。什么叫单例类呢?我们知道,普通的类是通过开放他的构造函数,然后让外部程序去生成、调用它的对象。通常情况下,我们的类应该只关心内部实现的逻辑是什么样子的,而不应该关心外部是怎么调用它的。但是单例类,是将其构造函数设置为私有的,外部原创 2017-05-10 22:12:07 · 271 阅读 · 0 评论 -
[设计模式] - No.12 Strategy模式
Strategy模式 Strategy模式又称策略模式,在策略模式中,我们将特定的算法封装起来,从而实现整体地替换算法的功能,以便我们能够按照不同的算法去解决同一个问题。《图解设计模式》这本书中的,策略模式这一章提供的代码示例有些冗长,所以我参考了这篇文章,编写了一个简单的例子,用较少的代码解释什么是策略模式。 假设我们有一个场景,在商场中针对不同的客户的身份,提供不同的优惠方案,最简单的一种实现...原创 2018-12-13 11:49:34 · 209 阅读 · 0 评论