【设计模式】
青山师
编码、架构、程序人生;此博客输出内容永久免费,长期分享JAVA开发技术
展开
-
【设计模式】之责任链模式
认识责任链模式在Design Patterns 一书中将Chain of Responsibility 责任链模式归类为行为模式。 行为模式涉及到算法和对象职责的分配。行为模式不仅描述对象或类的关系,还描述他们之间的通信模式。行为模式刻画了在运行时难以跟踪的复杂的控制流,它们将你的注意力从控制流转移到对象间的联系方式上来。责任链模式的概念责任链模式提供了请求对象与响应对象之间的松耦合。它通过由原创 2017-10-22 11:46:22 · 595 阅读 · 0 评论 -
【设计模式】之对象池模式--JDBC连接池简单实现案例
对象池设计模式对象池设计模式的目标对象池可以显著提高性能,在那些初始化一个类实例的代价比较高、但是使用频率比较低的场景时,对象池模式是非常高效的。问题对象池(资源池)常用于管理对象缓存。一个客户端通过对象池访问已经存在的实例从而避免创建新的对象。一般而言,对象池会持续生成对象,例如,如果对象池空了,则会创建新的对象。或者有一个对象池,限制了对象创建的数量。如果想要保持对象的可重用性,最...原创 2018-12-11 12:21:12 · 815 阅读 · 0 评论 -
【设计模式】之策略模式
策略模式策略模式属于行为模式,可以在运行时不修改类本身而通过变更内部算法来处理类的行为变更。这允许对象的可扩展性和松耦合性。经典定义如下:定义一系列封装的算法,可以交换这些算法来执行特定的行为。用例解压软件例如 WinZip,提供了不同的算法去处理 gip、gzip、tar、jar、7zip格式。在运行时,客户端选择了要执行的算法类型。Email 客户端像 outlook 支持很...翻译 2018-12-05 18:48:20 · 304 阅读 · 0 评论 -
【设计模式】之状态模式
状态设计模式状态模式属于行为模式,基于当前状态处理运行时对象的行为。当一个对象内部状态发生变更时,允许该对象改变其行为。对象可能会显示地更改其类。状态设计模式是怎样工作的定义一个表示多种状态的对象,该对象可以成为一个记忆状态机。定义一个上下文对象,行为随其状态而变化。用例状态模式在游戏开发中是一种经常使用的设计模式。游戏角色体征可能存在不同的状态如:健康(绿色、能飞能跑)、...原创 2018-11-26 17:46:16 · 377 阅读 · 0 评论 -
【设计模式】之接口设计分离原则
接口分离设计原则接口分离设计原则主要是为了解决接口臃肿的缺陷。接口如果包含不是特定于它的方法就称为污染的或者臃肿的接口。**“**客户端不应该被强制依赖它们本不需要使用的接口。。我们以施乐公司开发的一款多功能机器为例。这个超级施乐公司系统可以处理广泛的作业例如 打印、扫描、装订和复印等功能。它们可以作为像 IMachine 接口一样实现如下所示:IMachine.javapack...原创 2018-11-08 14:19:22 · 1270 阅读 · 0 评论 -
【设计模式】之原型模式
原型模式什么是原型模式?原型模式属于创造型模式。当要创建的对象类型可以由已经存在的原型对象确定时,就可以使用它。简单来说,使用原型模式,我们是通过clone已经存在的实例来完成的。在 Java 中,创建一个实例是需要花费很大代价的,耗时耗资源。如果存在一种避免创建对象的处理方式,仅仅是复制已经存在的对象,何乐而不为?原型模式给出了这种解决方案。什么时候使用原型模式?当通过更改现有对象更...原创 2018-11-05 20:08:57 · 362 阅读 · 0 评论 -
【设计模式】之23种设计模式总概览
设计模式概览设计模式是什么?世界上到处都有这种模式,烹饪、艺术馆、医药、法律、数学、音乐、舞蹈等等领域。一般来说,模式是为解决一般性经常发生类似的问题而提出的解决方案,简单来说就是一种解决方案的轮廓,但是又不仅仅于此。用更正式的话来说,模式是对重复出现的问题的可重用解决方案的概括总览。软件设计模式是一般性常见问题的可复用解决方案。在软件的开发过程中,设计模式可以很好地解决一些常见的...原创 2018-11-09 21:52:23 · 442 阅读 · 0 评论 -
【设计模式】之工厂方法模式
工厂方法设计模式软件系统经常不断变化,而且不稳定。我们必须考虑对象和关系的松耦合。松耦合是软件设计时一个非常重要的特性,可以帮助系统不做或者做很少的变更就能扩展新功能。工厂方法设计模式提供了一种将一个对象实例作为一个对象工厂的方式。工厂可以根据提供给它的参数返回类层次结构中可能的几个类中一个类实例。工厂设计模式属于创造型模式。工厂设计模式分为简单工厂、工厂方法和抽象工厂设计模式。...原创 2018-11-06 21:39:52 · 282 阅读 · 0 评论 -
【设计模式】之建造者模式
建造者模式什么是建造者模式?建造者模式属于创建型模式的一员,可以控制对象的实例化过程。建造者模式简化了复杂对象的实例化过程。建造者模式的经典定义如下:将复杂对象的构造和其表示分开,如此一来,相同的构造处理过程可以创建不同的表现。建造者模式的特点在Java中通过构造器创建对象实例时,我们一般会传递属性参数。会存在不同的参数组合去创建对象,并且其中一些是必须的还有一些是可选的。我们可...原创 2018-11-06 16:18:04 · 336 阅读 · 0 评论 -
【设计模式】之适配器模式
适配器模式什么是适配器模式适配器模式属于结构型模式,可以使得两个不匹配的接口可以协同工作。适配器模式允许两个不匹配的类通过将其中一个接口类型转换成另一个客户端期望的接口类型,从而达到二者协同工作。适配器模式也叫包装器。适配器模式在 Gang of Four 书中原始的定义如下:将一个类的接口类型转换成另一个客户端期望的接口类型。适配器可以让多个类协同工作即使他们本来是不匹配的接...原创 2018-10-30 22:45:17 · 350 阅读 · 0 评论 -
【设计模式】之单例模式
单例模式什么是单例模式单例模式属于管理实例的创造型类型模式。单例模式保证在你的应用种最多只有一个指定类的实例。单例模式应用场景项目配置类读取项目的配置信息的类可以做成单例的,因为只需要读取一次,且配置信息字段一般比较多节省资源。通过这个单例的类,可以对应用程序中的类进行全局访问。无需多次对配置文件进行多次读取。应用日志类日志器Logger在你的应用中是无处不在的。也应该...原创 2018-10-27 20:04:59 · 794 阅读 · 0 评论 -
【设计模式】之观察者模式
观察者模式什么是观察者模式观察者模式属于行为模式的一种,定义了对象的通用交流方式。观察者模式定义了一对多的关系,一个对象改变了状态,则其它所有依赖它的对象都会收到通知。观察者模式有时候在网络模型中也叫做发布-订阅模式。原来的对象叫做观察者,观察者们注册的对象叫做主体。当主体状态变更的时候,所有的观察者都会收到通知。观察者模式的特点观察者们注册到主体对象中去。主体维护一个观察者...原创 2018-10-30 17:23:04 · 564 阅读 · 0 评论 -
【设计模式】之抽象工厂模式
创造性设计模式创造型模式主要是为了实例化类所用。进一步又分为类创建、对象创建模式。类创建模式类创建模式主要基于继承方式进行实例化对象创建模式对象创建模式主要基于委托机制进行实例化Abstract Factory 抽象工厂模式抽象工厂常常 基于 几个类似的类中,创建指定的实例。目标提供一个接口,创建相似的或关联的对象,而不需要指定它们封装了很多可能的“平台”,可以创建一系列“产...翻译 2018-10-05 16:30:04 · 376 阅读 · 0 评论 -
【设计模式】之装饰器模式
装饰器设计模式的概念在实际生产中,某个类的行为(它所提供的方法)已经没法满足当前的需要了,但是又需要使用原有的部分功能,因此需要对原有对象进行增强——装饰器设计模式(Decorator Pattern)也叫包装器模式就是为解决此问题而诞生的,它是对原有类的一个包装,属于结构性设计模式。装饰器模式在不改变现有类方法签名的前提下,对当前的类进行了增强。Tips我们使用继承也可以实现,但是会导...原创 2019-08-06 14:18:41 · 307 阅读 · 0 评论