
设计模式
森林海的棕熊
极客文化
展开
-
设计模式 3.Template Method模式
模板模式,其实比较常用,在采用类的思想编程时,一般都用到了模板模式 步骤 1.定义抽象父类 构建抽象方法 构建非抽象方法,非抽象方法调用抽象方法 2.继承父类编写子类 重写抽象方法,调用非抽象方法。实现减少开发量,统一模式的模板模式。 案例 AbstractDisplay.java ackage templatemethod; public abstract class AbstractDi...原创 2018-12-12 14:21:39 · 133 阅读 · 0 评论 -
设计模式 4.Factory Method 模式
工厂模式是用模板模式来构建生成实例的工厂。Factou原创 2018-12-12 14:36:28 · 198 阅读 · 0 评论 -
设计模式 5.单例模式
单例模式应该是每个开发必须知道的设计模式,也十分简单,指保证整个程序中只有一个实例。 1.私有化构造函数 如果外部可以调用构造函数,那么就无法保证单例 1.1 饱汉模式 私有化构造函数 Private, 内部提前初始化 一个 实例 package singleton; public class Singleton { private static Singleton singleto...原创 2018-12-12 14:59:11 · 146 阅读 · 0 评论 -
设计模式 6.原型模式
原型模式主要用于1.对象种类繁多,无法整合到一个类中;2.难以根据类生成实例;3.想解耦框架与生成的实例。主要依赖于 clone方法和 Cloneable接口 1.构建复制功能的接口 Product.java 继承 Cloneable,这样才可以调用clone() use()是执行函数,具体执行什么由子类决定 createClone()是复制实例的函数 package prototype.fr...原创 2018-12-12 15:28:29 · 122 阅读 · 0 评论 -
设计模式 7.Builder 模式
Builder模式主要用于构建复杂结构的实例 主要的类是Builder类和Director类 1.Build抽象类声明方法规范 package builder; public abstract class Builder { public abstract void makeTitle(String title); public abstract void makeStrin...原创 2018-12-12 16:00:29 · 147 阅读 · 0 评论 -
设计模式 8.抽象工厂模式
工厂模式和抽象工厂模式的区别在于,工厂模式一个一个工厂对应生成一种产品,而抽象工厂模式在于可以一个工厂生产多种产品。 框架层 Item.java为元件父类 package abstractfactory.factory; public abstract class Item { protected String caption; public Item(String capt...原创 2018-12-12 17:22:39 · 152 阅读 · 0 评论 -
设计模式 9.Bridge模式
Bridge模式的作用在于将功能层次结构和实现层次结构分离开,方便两边做独立扩展。继承是强耦合,委托是弱耦合。 实现层次 DisplayImpl.java 定义实现的接口 package bridge; public abstract class DisplayImpl { public abstract void rawOpen(); public abstract voi...原创 2018-12-12 18:10:51 · 213 阅读 · 0 评论 -
设计模式 1.Iterator模式
图解设计模式的笔记,Iterator模式用于在数据集合中按照循序遍历集合,这种循序可以由开发定义、设计、封装。 类说明 Aggregate 表示集合的接口 创建Iterator,该接口由需要被遍历的类实现 Iterator 遍历集合的接口 提供 next()函数 返回下一个集合中的元素 hasNext()函数 判断集合中是否还有元素 Book 表示书的类 具体的元素 ...原创 2018-12-12 11:56:02 · 161 阅读 · 0 评论 -
设计模式 2.适配器模式
适配器模式一般用于现有接口无法直接使用,需要适当变换之后才能继续使用。 Adapter 模式有以下两种 类适配器模式(使用继承的适配器) 对象适配器模式 (使用委托的适配器) 类适配器模式 Banner.java 真实的执行者,被适配的对象 package adapter.extend; public class Banner { private String string; ...原创 2018-12-12 14:06:06 · 139 阅读 · 0 评论