随笔分类 -  java设计模式

摘要:描述 数据对象访问模式(DAO),用于把低级的数据访问API或操作从高级的业务服务中分离出来。该模式有三个成员: 1、数据对象访问接口(DAO):该接口定义了在一个模型对象上要执行的标准操作。 2、数据对象访问实体(DAOImpl):该实体实现了上述接口,并把其中的标准操作给实现;该实体类负责从数据 阅读全文
posted @ 2017-12-05 11:06 K_artorias 阅读(778) 评论(0) 推荐(0)
摘要:描述 MVC模式,熟悉java的web开源框架springMVC的人对这个模式肯定不陌生,顾名思义,M:model(模型),V:view(视图),C:controller(控制器),这是一种按照逻辑对程序进行分层的思想。把对model的定义、操作和展示完美的分开,这样能清晰的分离开不同的业务逻辑层次 阅读全文
posted @ 2017-12-05 10:51 K_artorias 阅读(280) 评论(0) 推荐(0)
摘要:描述 在访问者模式中,元素对象接受访问者对象的访问,而访问者对象处理元素对象上的操作。即至少在类方法上有相互包含的关系,互为成员变量。 通俗解释一下:就是现在有一个家的主人,家里有很多东西,而他有个非常要好的朋友,现在这个主人就应该有个方法,这个方法是接待朋友进家门,而这个要好的朋友在朋友家里的时候 阅读全文
posted @ 2017-12-04 11:37 K_artorias 阅读(229) 评论(0) 推荐(0)
摘要:描述 通过抽象函数定义一个模板,模板中定义抽象的函数。所有继承实现该类的子类都按照自己的实际需求实现其中的类,这样,就把这个抽象类当做了模板。 实例 代码来源: 特别感谢 菜鸟教程 java设计模式之模板模式 阅读全文
posted @ 2017-12-04 10:50 K_artorias 阅读(183) 评论(0) 推荐(0)
摘要:描述 策略模式中,一个策略类的行为或方法,可以在运行时更改。 解释一下:假设我们有一个游戏策略生成器,输入不同情况,就会产生不同对应策略出来,这就是策略模式。即我们只需要建立一个策略器,就能在不同状况下得到不同策略。 实例 代码来源:特别感谢 w3school java设计模式之策略模式 阅读全文
posted @ 2017-12-04 10:43 K_artorias 阅读(235) 评论(0) 推荐(0)
摘要:描述 空对象模式中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。 概念介绍总是抽象到难以理解,通俗的解释一下:就是设置一个默认的对象,我们称之为空对象,我们有个对象集,现在我们要写 阅读全文
posted @ 2017-12-01 11:56 K_artorias 阅读(295) 评论(0) 推荐(0)
摘要:描述 在状态模式中,类的行为基于其状态而改变。以上的描述可以说非常笼统,举个实例: 假设某个机器有三个状态:起始状态(startState)、活动状态(playState)和终结状态(stopState),现在我们有个显示器,这个显示器的功能是显示这个机器在不同状态应该有什么活动,而且只能显示一条。 阅读全文
posted @ 2017-12-01 11:31 K_artorias 阅读(233) 评论(0) 推荐(0)
摘要:描述 中介者模式致力于降低多对象信息交互的复杂性,通过提供一个中介类,所有对象的信息都通过这个中介来交互。 使用场景:多类相互耦合,形成网状结构。 实例 一个简单的例子:假设有三个人A、B、C,这三个人共同做一个项目,那么就要相互商讨,假设这三个人互为微信好友,那么当A想表达某些想法时候,就要分别通 阅读全文
posted @ 2017-11-30 11:35 K_artorias 阅读(316) 评论(0) 推荐(0)
摘要:描述 迭代器模式的意义在于模仿迭代器,自己定义一个迭代器,可以像迭代器的工作方式一样,访问一个聚合对象的所有元素。把在元素之间游走的责任交给迭代器,而不是聚合对象。 使用状况:遍历一个聚合对象。 实例 代码来源:特别感谢 w3school java设计模式之迭代器模式 阅读全文
posted @ 2017-11-30 11:17 K_artorias 阅读(216) 评论(0) 推荐(0)
摘要:描述 解释器模式提供了语言的语法或者表达式的评估方式,这种模式提供一个解释特定上下文的接口。 实例 一个很简单的例子,检测一个查询语句,那么必须是“select from”,单独的select和from都是返回false的,都可能是其他语句,这就是and检测;同样的,检测一条更改数据库的语句那可能是 阅读全文
posted @ 2017-11-30 10:35 K_artorias 阅读(212) 评论(0) 推荐(0)
摘要:描述 将请求以命令的格式包裹到对象中,并传给调用对象,调用对象寻找可以处理该命令的合适对象,由该合适对象执行。 实例 菜鸟教程上的一个很简单的例子: 假设有个股票类(Stock),对他存在两种操作:买(buystock)和抛(sellstock),先在股票类中定义两个方法:买方法和抛方法,然后定义一 阅读全文
posted @ 2017-11-29 12:08 K_artorias 阅读(219) 评论(0) 推荐(0)
摘要:描述 责任链模式为请求创建了一个接收者对象链,对象链的工作原理是这样的:当发送者发送一条消息给接收者链时,接收者链首会先得到消息并处理,如果链首没有处理功能,那么就会将消息传递到下一个对象,如果这个对象也处理不了,就继续向下穿,以此类推。 有个很简单的例子:假设程序运行结果有三个层级的消息:erro 阅读全文
posted @ 2017-11-29 11:30 K_artorias 阅读(295) 评论(0) 推荐(0)
摘要:描述 代理模式:一个类代表另一个类的功能 听起来很抽象,举几个简单直观的例子:windows中的快捷方式就是很形象的代理模式;现如今我们都用手机客户端网上买火车票,实际上网上客户端就是一个代理,他没有实际功能,只是负责在乘客和中国铁路局之间交互传递信息,那么这个手机客户端就是个代理,实际上处理业务的 阅读全文
posted @ 2017-11-28 11:30 K_artorias 阅读(194) 评论(0) 推荐(0)
摘要:描述 外观模式很好理解,就是一个复杂的类,把其中所有成员都设置为私有,同时为每个成员写一个公有的操作函数,很经典的就是我们平时写model时把成员变量定义为私有,同时为每个成员变量写get和set方法。 使用场景:当访问者不需要知道内部复杂联系,只需要调用内部功能时时候,常常定义系统入口。 实例 上 阅读全文
posted @ 2017-11-28 11:15 K_artorias 阅读(195) 评论(0) 推荐(0)
摘要:描述 装饰器模式的作用是在不改变现有对象的结构的情况下,对其添加新的功能。这种模式创建了一个装饰类,该装饰类继承原有的类,并包装原有的类。 描述起来很麻烦,下面举个例子: 假设有个形状接口(shape),下面分别创建长方形类(rectangle)和圆形类(circle)都实现形状接口。下面我要给这两 阅读全文
posted @ 2017-11-28 11:07 K_artorias 阅读(237) 评论(0) 推荐(0)
摘要:描述 组合模式,又叫部分整体模式,用于把一组相似的对象按照对象关系组合为一个单一对象,其依据树形结构来组合对象。 光说概念太难理解了,举个例子,有个员工类(Employee),那么一个公司的所有人都可以用这个类的对象来表示,因为不管是首席执行官(CEO)、销售主管(headSales)、营销主管(h 阅读全文
posted @ 2017-11-27 11:07 K_artorias 阅读(210) 评论(0) 推荐(0)
摘要:描述 假设有个人的类Person,有三个属性:name(姓名)、gender(性别)和maritalStatus(婚姻状况),现在用这个类实现10个对象,也就是有10个人,将这10个人放入一个List<Person>中,按照不同的需求筛选出符合情况的,比如选出所有男性,选出所有未婚的,或者选出所有未 阅读全文
posted @ 2017-11-24 11:17 K_artorias 阅读(288) 评论(0) 推荐(0)
摘要:描述 桥接模式是将抽象化与实现化分离,即将对象的定义和实现进行分离,是结构模式的一种。这种类涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。 例子 比如我们要画图,我们要画的可能有正方形、矩形、三角形等等,还要给这些形状上色,分别为红色、黑色、蓝色 阅读全文
posted @ 2017-11-23 11:55 K_artorias 阅读(769) 评论(0) 推荐(0)
摘要:描述 适配器的理解很简单,举个例子:我们都见过存储卡,一般手机都可以装上存储卡,手机可以对存储卡直接读写,但是如果想用电脑读写存储卡呢?那就需要一个媒介 卡托,把存储卡插在卡托上,卡托上有个USB的数据口,而所有电脑都支持USB口,这样就可以用电脑读写存储卡内容了。卡托这个神器就是一种适配器。适配器 阅读全文
posted @ 2017-11-22 17:09 K_artorias 阅读(250) 评论(0) 推荐(0)
摘要:原型模式是创建类设计模式中最容易理解的一种设计模式,类图如下: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件: 实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以 阅读全文
posted @ 2017-11-21 19:26 K_artorias 阅读(242) 评论(0) 推荐(0)