
设计模式
文章平均质量分 87
包含了主要的一些设计模式,博文的大部分内容都来自《Head First 设计模式》一书。每篇博文博主都是很认真的在写,希望能够帮助到你。
留兰香丶
但行好事,莫问前程
展开
-
设计模式总结
(一)设计模式参考目录 策略模式 观察者模式 装饰者模式 工厂模式 单例模式 命令模式 适配器模式 外观模式 模板方法模式 迭代器模式 组合模式 状态模式 JDK动态代理 相关设计模式的所有代码,都传到了GitHub,有需要的可以点击前往: https://github.com/coderjas/Design...原创 2018-02-02 11:50:43 · 1022 阅读 · 0 评论 -
Java 设计模式之策略模式
(一)了解策略模式1.1什么是策略模式策略模式(Strategy Pattern)是指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换。此模式让算法的变化独立于使用算法的客户。1.2策略模式组成结构环境(Context):持有一个策略类的引用,最终给客户端调用。抽象策略(Strategy): 策略类,通常是一个接口或者抽象类。具体策略(ConcreteSt原创 2018-01-16 22:18:57 · 672 阅读 · 2 评论 -
Java 设计模式之观察者模式
(一)了解观察者模式 1.1什么是观察者模式观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象状态改变时,它的所有依赖者都会收到通知并自动更新。典型的问题比如报社,只要你是他们的订户,他们每次有新报纸出版时,就会向你这送来,当你不想要看报纸时,取消订阅,他们就不会再给你送报纸。1.2观察者模式组成结构抽象主题(Subject):抽象主题角色把所有观察者对象保存在一个集原创 2018-01-19 17:46:35 · 449 阅读 · 0 评论 -
Java 设计模式之装饰者模式
(一)了解装饰者模式1.1什么是装饰者模式装饰者模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰者来包裹真实的对象。所以装饰者可以动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的方案。1.2装饰者模式组成结构抽象构件(Component):给出抽象接口或抽象类,以规范准备接收附加功能的对象。具原创 2018-01-20 17:17:41 · 498 阅读 · 0 评论 -
Java 设计模式之工厂模式
*写在前面这篇博文介绍设计模式的形式将与其他篇博文不太一样,这里我们将从一个问题入手,逐步了解到简单工厂、工厂方法与抽象工厂模式。PS:这篇博文涉及的内容较多,所以篇幅有点长,请耐心阅读。*为什么要使用工厂模式?在OO 设计中,有一个重要的设计原则:针对接口编程而不针对实现编程。每当我们使用new 去实例化一个对象时,用到的就是实现编程,而不是接口。这样以来代码绑定着具体类,会导致原创 2018-01-22 16:05:06 · 556 阅读 · 1 评论 -
Java 设计模式之单例模式
在《Head First 设计模式》一书中,将单例模式称作单件模式。这里为了适应大环境,把它称之为大家更熟悉的单例模式。(一)了解单例模式1.1什么是单例模式单例模式确保一个类只有一个实例,并提供一个安全访问点。我们把某个类设计成自己管理的一个单独实例,同时也避免其他类再自行产生实例。想要获取单例实例,通过单例类是唯一的途径。单例类提供对这个实例的全局访问点:当你需要实例时,向...原创 2018-01-23 15:28:46 · 336 阅读 · 0 评论 -
Java 设计模式之命令模式
(一)了解命令模式1.1什么是命令模式 命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。这种说法比较难以理解,换种说法就是指:在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者原创 2018-01-25 10:12:35 · 375 阅读 · 0 评论 -
Java 设计模式之适配器模式
(一)了解适配器模式1.1什么是适配器模式适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原来接口不兼容的类可以合作无间。适配器模式有两种:“对象”适配器和“类”适配器。这个模式可以通过创建适配器进行接口转换,让不兼容的接口变得兼容。这可以让客户从实现的接口解耦。如果在一段时间之后,我们想要改变接口,适配器可以将改变的部分封装起来,客户就不必为了应对不同的接口而每次跟着修原创 2018-01-25 15:07:26 · 379 阅读 · 0 评论 -
Java 设计模式之外观模式
(一)了解外观模式1.1什么是外观模式外观模式(Facade Pattern)提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。想要使用外观模式,我们需要创建一个接口来简化和统一包装一个子系统的一个或多个类。外观模式允许我们让客户和子系统之间避免紧耦合。1.2外观模式的组成结构客户(Client):通过调用Facede来完成要实现的...原创 2018-01-26 11:26:31 · 512 阅读 · 0 评论 -
Java 设计模式之模板方法模式
(一)了解模板方法模式1.1什么是模板方法模式模板方法模式Template Method Parrern)在一个方法中定义了一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义方法中的某些步骤。模板就是一个方法,更具体的说,这个方法将算法定义为一组步骤,其中的任何步骤都可以是抽象的,由子类负责实现。这可以确保算法的结构保持不变,同时由子类提供原创 2018-01-27 15:18:09 · 467 阅读 · 0 评论 -
Java 设计模式之迭代器模式
(一)了解迭代器模式1.1什么是迭代器模式迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。迭代器模式把游走的任务放在迭代器上,而不是聚合上。这样简化了聚合的接口和实现,也可以让责任各得其所。1.2迭代器模式组成结构迭代器(Iterator):迭代器定义访问和遍历元素的接口。具体迭代器(ConcreteIterator):具体迭代器实现迭代器接原创 2018-01-29 10:41:30 · 5143 阅读 · 1 评论 -
Java 设计模式之组合模式
(一)了解组合模式1.1什么是组合模式组合模式允许你将对象组合成树形结构来表现“整体/部分”层次机构。组合能够使客户以一致的方式处理个别对象以及组合对象。组合模式让我们能够用树形方式创建对象的结构,树里面包含了组合以及个别的对象。使用组合结构,我们能够把相同的操作应用在组合和个别对象上。换句话说,在大多数情况下,我们可以忽略对象组合和个别对象之间的差别。1.2组合模式组成结构原创 2018-01-30 14:46:38 · 478 阅读 · 0 评论 -
Java 设计模式之状态模式
(一)了解状态模式1.1什么是状态模式状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它自己的类。状态模式将状态封装为独立的类,并将动作委托到代表当前状态的对象。1.2状态模式组成结构上下文(Context):用户对象,拥有(聚合)一个State类型的成员,以标识对象的当前状态。抽象状态(State):接口或基类,封装与Context的特定状态相关的行为。原创 2018-01-31 12:12:51 · 371 阅读 · 0 评论 -
JDK 动态代理
(一)了解JDK 动态代理1.1什么是代理模式在了解动态代理之前,我们有必要先来了解一下什么是代理模式。代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问。使用代理模式创建代表对象,让代表对象控制某对象的访问,被代理的对象可以是远程的对象、创建开销大的对象或需要安全控制的对象。如下图: 1.2什么是JDK 动态代理Java 在java.lang.reflect 包原创 2018-02-01 11:34:49 · 740 阅读 · 0 评论