郑保乐的博客

James' Blog


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

设计模式学习笔记(9)命令

发表于 2018-04-25 | 分类于 设计模式 | | 阅读次数:
字数统计: 1,933 字 | 阅读时长 ≈ 8 分钟

本文实例代码:https://github.com/JamesZBL/java_design_patterns

命令(Command)模式是一种数据驱动的设计模式,它属于行为型模式。请求被包装成一个命令对象,并由调用者传递给被调用对象。被调用对象寻找可以处理该命令的合适的处理对象,并把该命令传给这个处理对象,该处理对象执行命令。

命令模式中,命令的发出者和接收者是独立的,发出命令的职责和处理命令的职责被分别指派给不同的对象。命令模式解决了一般的调用过程中,“行为请求者”与“行为实现者” 之间的强耦合关系。比如某些场合中,需要对命令进行“撤销”、“重做”,亦或其他不得不以 “事务” 的形式实现的场合,命令发出者和命令实现者之间的解耦就显得至关重要了。

阅读全文 »

设计模式学习笔记(8)单例

发表于 2018-04-22 | 分类于 设计模式 | | 阅读次数:
字数统计: 1,598 字 | 阅读时长 ≈ 6 分钟

本文实例代码:https://github.com/JamesZBL/java_design_patterns

单例(Singleton)模式是最常用的设计模式之一,但同时也是最能体现 Java 特性的设计模式之一,它是创建型模式中最经典的一个。

单例模式的核心目的是,保证一个类的实例只存在一个。许多场景中整个软件系统只需要拥有一个该类的全局对象,这是为了更好的实现这个对象的功能。一个常见的场景,服务器应用程序中,某些配置通常放在若干个文件中,某个类的一个单例对象将配置读取进来,以后每次需要获取配置信息只需要通过单例模式的风格获取这个对象,就能得到这些配置数据了。相反,如果每次需要获取配置信息都要 new 一个该类的对象并读取配置文件,那将造成许多本可以避免的性能开销。

阅读全文 »

设计模式学习笔记(7)原型

发表于 2018-04-21 | 分类于 设计模式 | | 阅读次数:
字数统计: 602 字 | 阅读时长 ≈ 2 分钟

本文实例代码:https://github.com/JamesZBL/java_design_patterns

原型(Prototype)模式用于创建重复的对象,与工厂模式类似。它们之间的区别是:工厂模式通过 new 关键字调用类的构造方法来创建对象,而原型模式采用复制已存在对象的方式创建新的对象。如果通过构造方法创建对象会造成一定程度上的性能问题,就应当考虑使用原型模式。例如,一个对象需在创建时需要进行读数据库的操作,并且这个对象需要被频繁的创建,那么就应当采用缓存的方式,在数据不更新的前提下,尽可能的使用缓存,也就是克隆的对象。

阅读全文 »

设计模式学习笔记(6)工厂方法

发表于 2018-04-20 | 分类于 设计模式 | | 阅读次数:
字数统计: 1,023 字 | 阅读时长 ≈ 4 分钟

本文实例代码:https://github.com/JamesZBL/java_design_patterns

工厂方法(Factory Method)模式,又叫做虚拟构造(Virtual Constructor)模式或多态工厂(Polymorphic Factory)模式。工厂方法的特点是定义一个用于创建对象的接口, 让子类决定实例化哪一个类。 工厂方法使一个类的实例化延迟到其子类。

阅读全文 »

设计模式学习笔记(5)抽象工厂

发表于 2018-04-20 | 分类于 设计模式 | | 阅读次数:
字数统计: 910 字 | 阅读时长 ≈ 4 分钟

本文实例代码:https://github.com/JamesZBL/java_design_patterns

抽象工厂模式是在工厂方法模式之上的有一次升级,以便能够处理更加复杂的对象创建场景。因此也是所有形态的工厂模式中最为抽象和最具一般性的一种形态。工厂 ( Factory ) 和产品 ( Product ) 是 Abstract Factory 模式的主要参与者。 该模式描述了怎样在不直接实例化类的情况下创建一系列相关的产品对象。 它最适用于产品对象的数目和种类不变, 而具体产品系列之间存在不同的情况。 我们通过实例化一个特定的具体工厂对象来选择产品系列, 并且以后一直使用该工厂生产产品对象。 我们也能够通过用一个不同的具体工厂实例来替换原来的工厂对象以改变整个产品系列。 抽象工厂模式对产品系列的强调使它区别于其他只与一种产品对象有关的创建性模式。

阅读全文 »

设计模式学习笔记(4)构建者

发表于 2018-04-20 | 分类于 设计模式 | | 阅读次数:
字数统计: 884 字 | 阅读时长 ≈ 4 分钟

本文实例代码:https://github.com/JamesZBL/java_design_patterns

构建者(Builder)模式通常用于将复杂对象的构造简化,将具体的构造过程与表示分离,使同样的构建过程可以创建不同的表示。使用多个简单的对象一步一步构建成一个复杂的对象,这种类型的设计模式属于创建型模式。建造模式可以将一个复杂对象的内部组成部分,与该对象本身的创建分离开来,从而使得复杂对象的组装更灵活。

阅读全文 »

设计模式学习笔记(3)装饰器

发表于 2018-04-19 | 分类于 设计模式 | | 阅读次数:
字数统计: 1,440 字 | 阅读时长 ≈ 6 分钟

本文实例代码:https://github.com/JamesZBL/java_design_patterns

装饰器(Decorator)模式用于动态地给一个对象添加一些额外的职责。 就增加功能来说, Decorator模式相比生成子类更为灵活。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。

阅读全文 »

设计模式学习笔记(2)适配器

发表于 2018-04-18 | 分类于 设计模式 | | 阅读次数:
字数统计: 1,250 字 | 阅读时长 ≈ 5 分钟

本文实例代码:https://github.com/JamesZBL/java_design_patterns

适配器(Adapter)模式用来将两个不同的接口进行适配,所以它是一种结构型的模式。适配器可以实现把一种接口进行转换,从而能够适应客户端的需求,所以它解决了两个类之间因为接口不匹配而无法工作的问题。适配器在日常生活中也很常见,比如 Micro-SD 卡需要一个转换器才在大多数的笔记本上存取数据,两脚插头需要转换器才能在只提供三脚插孔的插座上使用,Micro-USB 的数据线需要转换器才能在只具备 Type-C 的接口的设备之间传输数据等等…… 这些转换设备都属于适配器,它们都将一种接口转换成另一种接口,而使用者只需了解转换设备如何使用即可,无需关注其内部实现逻辑。

阅读全文 »

设计模式学习笔记(1)组合

发表于 2018-04-17 | 分类于 设计模式 | | 阅读次数:
字数统计: 1,492 字 | 阅读时长 ≈ 6 分钟

本文实例代码:https://github.com/JamesZBL/java_design_patterns

组合(Composite)模式用于将对象组合成树形结构以表示 “部分——整体” 的层次结构。它使得用户对单个对象和组合对象的使用具有一致性。

阅读全文 »

基于 Spring Boot 2.0 构建一个 RESTful WebService

发表于 2018-04-16 | 分类于 后端 | | 阅读次数:
字数统计: 1,304 字 | 阅读时长 ≈ 6 分钟

REST 全称是 Representational State Transfer,中文意思是“表述性状态转移”。RESTful 是关于 Web 的现有特征和使用方式的一些准则和约束。 基于 Spring MVC 的 RestController,我们可以方便的构建一个 RESTful 风格的应用。

阅读全文 »
1234
郑保乐

郑保乐

优秀的判断力来自经验,
但经验来自错误的判断。

32 日志
7 分类
31 标签
RSS
友情链接
  • EEE凯飞
  • WinterChen
  • 云邪
  • 州的先生
© 2015 — 2018 郑保乐 | James Zheng | 一共写了: 43.5k字
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4
冀ICP备18000182号
冀公网安备 13010802000830号