设计模式
文章平均质量分 83
从常用的结构设计方案中提取擅长解决某一类问题的设计,加以修饰作为特定问题领域内推荐使用的结构
登天蚂蚁
蜂采百花蜜酿成,为谁辛苦为谁甜
展开
-
jdk动态代理
定义 代理的使用场景很多,通常表现为封装原有代码的调用,提供额外的操作代码,或者说隐藏原始代码,控制对原始代码的访问,常见的用途例如,执行方法之前的权限检查,或者进行日志记录、事务处理等。这里以权限检查为例,代理中增加的权限检查代码称之为操作方法,被代理对象成为委托对象示例package test;public interface User { void addUser原创 2017-03-11 16:33:52 · 727 阅读 · 0 评论 -
适配器模式
定义适配器模式从名字与其结构上可以看出,其体现出的是一个转化作用。将已有的功能转化为客户端所期待的功能,也可以理解为,将客户端实际使用的接口在暗中转接到一个已存在的类上,该移花接木操作对客户端而言是透明的。结构从定义中可以看出,该模式需要包含三个部分:1、目标接口,在其中定义了客户端所需要的功能接口,也就是待实现的方法2、适配者类,提供目标接口中实际使用到的方法3、适配器类原创 2016-08-21 13:14:24 · 340 阅读 · 0 评论 -
观察者模式
模式定义我们知道面向对象的一个主题就是类实例的实体化,即每个实体都有自己的状态和行为,而仿照真实世界的不同客观实体之间是存在诸多联系的,则一个很常见的对象联动方式就是反馈行为的发生。最常见的场景如:班车进站,众旅客上车,这是一个典型的对象反馈行为。由此产生的一种描述该现象的设计模式,称之为观察者模式,也有其他的名字如发布-订阅模式、模型-视图模式等。观察者模式作为一种对象行为型模式,用于监原创 2016-08-20 20:21:01 · 446 阅读 · 0 评论 -
策略模式
定义策略模式重点讲述的有两个方面:策略的定义、策略的使用。将解决问题的不同算法分别定义为不同的策略类,在使用中可以选择或者替换不同的策略对象,即切换使用不同的算法。结构由定义可以看出,策略模式可以分为三个部分1、环境类,也就是待使用策略的类,内部包含一个抽象策略的引用2、抽象策略类,将算法的公共部分提出出来,放在抽象策略类中实现3、具体策略类,不同算法的实现体可原创 2016-08-21 21:41:07 · 314 阅读 · 0 评论 -
组合模式
定义在对单个对象的处理中,可以以简单明了的方式进行,即按照需求正常进行操作即可。当待操作的对象不是单个对象,而是一个对象集合时,因为实际需要操作的目标是集合的元素,所以在执行目标对象行为之前,需要进行定位目标对象的额外操作(例如遍历集合)。如果把集合作为为了实现目标行为(即多个对象的行为调用)而附加的一个属性,则需要提供对该属性的管理。示例例如上图,想要完成的需求是提供“共享”原创 2016-08-26 19:40:19 · 582 阅读 · 0 评论 -
单例模式
定义单例模式顾名思义,在全局范围内提供唯一的实例对象供全局访问,一般用于全局的资源监控或者特定数量的资源访问控制(引申为特定数量的单例对象而非唯一,此处以单个实例对象为例),常用的示例如系统日志、单个打印机等对象,避免混乱发生错误,所以维持全局只有一个对象。结构如下单例模式作为对象创建性模式,所关心的只有两个点:1、只有一个实例对象被创建2、实例的创建时间可控制结构原创 2016-08-30 12:50:16 · 438 阅读 · 0 评论 -
外观模式
定义外观模式是使用频率非常高的一种设计模式,用于隔离客户端与复杂子系统的关联关系,参考迪米特法则可知,该模式的结构是在客户端与子系统之间引入一个“外观”类,满足客户端需求针对“外观”对象提出即可,具体的实现交给“外观”对象来完成。最基本实现如下由上图可知,将原本耦合度较高的客户端与复杂系统分隔开,客户端只需要向facade对象,即外观对象,提出需求即可(从这里看有点像之前提到的原创 2016-09-01 13:42:56 · 459 阅读 · 0 评论 -
代理模式
定义代理模式的作用比较容易理解,因为名字已经说明一些。最表面的意思就是提供一个对象的代理对象,通过代理对象来完成目标对象所要完成的功能,其实内部操作仍然是目标对象的操作,不过是添加了一层掩饰。这里所说的代理对象是指与目标对象实现相同接口的类的实例,因为要提供一致性访问,或者说对外不区分所使用的是代理对象还是目标对象。原创 2016-09-06 14:06:15 · 344 阅读 · 0 评论 -
桥接模式
定义桥接模式根据其名字中的“桥”提示,可知该模式用于连接两个类型空间,或者也可以说用于隔离两个类型,当然这种说法太模糊不清。桥接模式的定义为分离两个独立变化的维度,将原系统中同时存在关联关系的两个因素,隔离为两个独立的继承结构,并在两个继承结构的抽象层建立关联关系。下面解释这个定义的意思:什么是一个系统中同时存在两个具有关联关系的因素?举例来说,公园要制造玩具模型有两种动物,牛、羊,每原创 2016-09-16 12:22:10 · 441 阅读 · 0 评论 -
装饰模式
定义装饰模式是一种利用对象的关联关系来拓展对象功能的模式,并对外提供透明访问。由其名称中“装饰”两个字可知,该模式强调为对象添加职责,为了不违背单一职责原则,降低复杂度,所以提供装饰类对被装饰类加以修饰,这里称被装饰类为原始构件类,在每个装饰类中提供一个需要附加或添加的职责,所以一般需要一个抽象的装饰类。整个结构满足每个单独类都提供一个职责,通过装饰类对构件类进行包装来提供目标服务方法。结原创 2016-09-17 12:04:54 · 459 阅读 · 0 评论