摘要: 迭代器模式(Iterator Pattern),提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部。迭代器模式属于行为型模式。 模式定义 迭代器模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据。 模 阅读全文
posted @ 2019-05-26 15:16 leisurexi 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 模式定义 所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将这个对象恢复到原先保存的状态。 模式结构 备忘录模式主要包含 阅读全文
posted @ 2019-05-25 19:20 leisurexi 阅读(122) 评论(0) 推荐(0) 编辑
摘要: Collection是一个接口,是高度抽象出来的集合,它包含了集合的基本操作和属性。 什么是集合 集合是存储对象的容器,面相对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,存储对象,集合是存储对象最常用的一种方式。 集合的出现就是为了持有对象。集合中可以存储任意类型,而且长度可变 阅读全文
posted @ 2019-05-25 18:56 leisurexi 阅读(523) 评论(0) 推荐(0) 编辑
摘要: ArrayList介绍 ArrayList简介 ArrayList是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List,RandomAccess,Cloneable,java.io.Serializable这些接口。 Array 阅读全文
posted @ 2019-05-25 18:45 leisurexi 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 适配器模式属于结构型模式的一种,用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有俩极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得笔记本电脑无法充电。这时候一个三相到俩相的转换器(适配器)就能解决此问题,而这正像是本模式所做的事情。适配 阅读全文
posted @ 2019-04-13 21:11 leisurexi 阅读(185) 评论(0) 推荐(1) 编辑
摘要: 本片文章主要介绍状态模式。 状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 状态模式只要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同的一系列类当中,可以把复杂的判断逻辑化。当然,如果这个判断很简单,那就没必要使用状态模 阅读全文
posted @ 2019-04-08 22:23 leisurexi 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 本篇文章主要介绍抽象工厂模式。 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。 我们先看下结构图: AbstractProductA和AbstractProductB是俩个抽象产品,之所有抽象,是因为它们都有可能有俩种不同的实现;而ProductA1、Produc 阅读全文
posted @ 2019-04-07 21:58 leisurexi 阅读(151) 评论(0) 推荐(1) 编辑
摘要: 本篇文章主要介绍观察者模式。 观察者模式:观察者模式又称发布-订阅模式。其定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象再状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 我们先看下结构图: 下面我们看具体代码实现。 Subject类为抽象通知者,一般 阅读全文
posted @ 2019-04-05 22:15 leisurexi 阅读(125) 评论(0) 推荐(1) 编辑
摘要: 本篇文章主要介绍建造者模式。 建造者模式:讲一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 我们先看下结构图: Builder是创建Product对象的抽象接口;ConcreteBuilder是具体建造者,实现Builder接口;Producr是具体的产品;Director 阅读全文
posted @ 2019-03-31 21:56 leisurexi 阅读(114) 评论(0) 推荐(1) 编辑
摘要: 本片文章主要介绍外观模式。 外观模式:为子系统中一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 我们先看下结构图: 下面我们就以这个结构图写个简单的例子: 首先是四个子系统的代码。 package com.lwx.facade; /** * Created 阅读全文
posted @ 2019-03-31 12:14 leisurexi 阅读(399) 评论(0) 推荐(1) 编辑