会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
没有梦想的小灰灰
博客园
首页
新随笔
联系
管理
订阅
上一页
1
···
5
6
7
8
9
10
11
12
13
下一页
2016年6月18日
解释器模式(Interpreter Pattern)
摘要: 解释器模式:为语言创建解释器,提供评估语言的语法或表达式的方法。 例子: 测试结果: 在JAVA中,使用解释器模式的地方很少,expression4j框架是基于Java的开源框架,它用于对数学表达式进行操作,是一个数学公式解析器。它是应用解释器模式的最佳例子,但目前这个框架仍在完善的过程中。
阅读全文
posted @ 2016-06-18 23:56 没有梦想的小灰灰
阅读(182)
评论(0)
推荐(0)
2016年6月17日
备忘录模式(Memento Pattern)
摘要: 备忘录模式:保存一个对象的某个状态,以便在适当的时候恢复对象。 例子: 测试结果: 我们在不破坏封装的前提下,捕获了Adventor内部的状态state,并把这个状态保存在Memento中,通过一个MementoManager来管理Memento。在Adventor类中的saveStateToMem
阅读全文
posted @ 2016-06-17 22:28 没有梦想的小灰灰
阅读(357)
评论(0)
推荐(0)
2016年6月16日
访问者模式(Visitor Pattern)
摘要: 访问者模式:使用一个访问者类,改变元素的行为。通过这种方式,随着访问者的改变,被访问者的行为可以被改变。 类图: 实现Master接口的具体类是行为需要被改变的对象。 实现Visitor接口的具体类是访问者,访问者不同,实现Master接口的具体类的行为不同。 测试结果:
阅读全文
posted @ 2016-06-16 22:11 没有梦想的小灰灰
阅读(164)
评论(0)
推荐(0)
2016年6月15日
空对象模式(Null Object Pattern)
摘要: 空对象模式:用一个空对象来取代null实例的检查,空对象实现一个不做任何动作的关系。(消除如if(Object == null) 这样的检查null实例代码) 例子: 如果要求的对象不存在,不是返回null,而是返回空对象,这样代码会比使用条件判断更加"优雅"。
阅读全文
posted @ 2016-06-15 23:20 没有梦想的小灰灰
阅读(215)
评论(0)
推荐(0)
2016年6月14日
中介者模式(Mediator Pattern)
摘要: 中介者模式:集中相关对象之间复杂的沟通和控制方式。 模式结构图: 例子: 在这里ChatRoom是一个中介者,有多个User会使用中介者,形成一个用户间的聊天室,如果以后添加一个管理员与用户沟通,就不需要修改User代码了(当然中介者的代码需要修改,因为要添加处理管理员与用户之间交互的功能),只要加
阅读全文
posted @ 2016-06-14 22:46 没有梦想的小灰灰
阅读(164)
评论(0)
推荐(0)
2016年6月13日
蝇量模式(Flyweight Pattern)
摘要: 蝇量模式:让某个类的一个实例能用来提供许多“虚拟实例”。 在有大量对象时,有可能造成内存溢出,把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重复创建。(JAVA中的String,如果没有则创建一个字符串保存在字符串常量池里,否则直接返回) 类图: 某次测试结果: C
阅读全文
posted @ 2016-06-13 22:57 没有梦想的小灰灰
阅读(243)
评论(0)
推荐(0)
2016年6月12日
责任链模式(Chain of Responsibility Pattern)
摘要: 责任链模式:可以为某个请求创建一个对象链。每个对象依序检查此请求,并对其处理,或者把它传给链中的下一个对象。 责任链上的对象负责处理请求,客户只需要将请求发送到责任链上即可,无需关心处理的细节和请求的传递,所以请求的发送者和接收者解耦了。 类图: 具体例子: 一个Logger日志抽象类,三个具体日志
阅读全文
posted @ 2016-06-12 23:58 没有梦想的小灰灰
阅读(213)
评论(0)
推荐(0)
2016年6月10日
java.util.AbstractStringBuilder源码分析
摘要: AbstractStringBuilder是一个抽象类,是StringBuilder和StringBuffer的父类,分析它的源码对StringBuilder和StringBuffer代码的理解有很大的帮助。 先来看看该类的声明: 该类实现Appendable和CharSequence接口。 成员变
阅读全文
posted @ 2016-06-10 21:59 没有梦想的小灰灰
阅读(343)
评论(0)
推荐(0)
2016年6月9日
模板方法模式(Template Pattern)
摘要: 模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法的结构下,重新定义算法中的某些步骤。 这个模式是用来创建一个算法模板。模板就是一个方法。更具体地说,这个方法将算法定义成一组步骤,其中的任何步骤都可以是抽象的,由子类负责实现。这可以确保算法的结构
阅读全文
posted @ 2016-06-09 23:45 没有梦想的小灰灰
阅读(272)
评论(0)
推荐(0)
2016年6月8日
策略模式(Strategey Pattern)
摘要: 策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 下面举个例子: 有两个具体策略,分别执行两个整型加法和减法。 如此一来,就能在运行时改变选择的策略,具体策略与客户解耦了,就算具体策略的细节被改变,客户也不需要知道。
阅读全文
posted @ 2016-06-08 15:29 没有梦想的小灰灰
阅读(234)
评论(0)
推荐(0)
上一页
1
···
5
6
7
8
9
10
11
12
13
下一页
公告