- 浏览: 145204 次
- 性别:
- 来自: 北京
最新评论
-
jackroomage:
-HashMap 类 (除了不同步和允许使用 null ...
map,set,list,等JAVA中集合解析 -
bin_1715575332:
讲得很形象,呵呵。
Spring如何实现IOC与AOP的 -
love_miaohong:
表达的很清晰!
map,set,list,等JAVA中集合解析 -
Wuaner:
引用 4,sleep必须捕获异常,而wait,notify和n ...
sleep() 和 wait() 的区别 -
javawen:
dadsdddddd
java 异常类
文章列表
首先感谢众多朋友的支持、评论和鼓励,只有多多努力,写点好的博文来回报大家的好意!
接下来想写写另外一个虽然较简单,但是使用很频繁的模式——策略模式
策略模式(Strategy)
1 场景问题
1.1 报价管理
...
3.7 命令模式的优缺点
更松散的耦合
命令模式使得发起命令的对象——客户端,和具体实现命令的对象——接收者对象完全解耦,也就是说发起命令的对象,完全不知道具体实现对象是谁,也不知道如何实现。
更动态 ...
3.5 队列请求
所谓队列请求,就是对命令对象进行排队,组成工作队列,然后依次取出命令对象来执行。多用多线程或者线程池来进行命令队列的处理,当然也可以不用多线程,就是一个线程,一个命令一个命令的循环处理,就是慢点。
继续宏命令的例子,其实在后厨,会收到很多很多的菜单,一般是按照菜单传递到后厨的先后顺序来进行处理,对每张菜单,假定也是按照菜品的先后顺序进行制作,那么在后厨就自然形成了一个菜品的队列,也就是很多个用户的命令对象的队列。
后厨有很多厨师,每个厨师都从这个命令队列里面取出一个命令,然后按照命令做出菜来,就相当于多个线程在同时处理 ...
详情见附件
转载自:http://blog.csdn.net/andycpp/archive/2006/10/09/1327147.aspx
3.4 宏命令
什么是宏命令呢?简单点说就是包含多个命令的命令,是一个命令的组合。举个例子来说吧,设想一下你去饭店吃饭的过程: (1)你走进一家饭店,找到座位坐下 (2)服务员走过 ...
3.3 可撤销的操作
可撤销操作的意思就是:放弃该操作,回到未执行该操作前的状态
。这个功能是一个非常重要的功能,几乎所有GUI应用里面都有撤消操作的功能。GUI的菜单是命令模式最典型的应用之一,所以你总是能在菜单上找到撤销这样的菜单项。
既然这么常用,那该如何实现呢?
有两种基本的思路来实现可撤销的操作,一种是补偿式,又称反操作式
:比如被撤销的操作是加的功能,那撤消的实现就变成减的功能;同理被撤销的操作是打开的功能,那么撤销的实现就变成关闭的功能。
另外一种方式是存储恢复式
,意思就是把操作前的状态记录下来, ...
3 模式讲解
3.1 认识命令模式
(1)命令模式的关键
命令模式的关键之处就是把请求封装成为对象,也就是命令对象,并定义了统一的执行操作的接口,这个命令对象可以被存储、转发、记录、处理、撤销等, ...
命令模式也是开发中常见的一个模式,也不是太难,比较简单,下面来详细的写一下命令模式。
命令模式(Command)
1 场景问题
1.1 如何开机
估计有些朋友看到这个标题会非常奇怪,电脑装配好了,如何开机?不就是按下启动按钮就可以了吗?难道还有什么玄机不成。 对于使用电脑的客户——就是我们来说,开机确实很简单,按下启动按钮,然后耐心等待就可以了。但是当我们按下启动按钮过后呢?谁来处理?如何处理?都经历了怎样的过程,才让电脑真正的启动起来,供我们使用。 先一起来简单的认识一下电脑的启动过程,了解一下即可。
当我们按下启动 ...
3.8 在Java中一种更好的单例实现方式
根据上面的分析,常见的两种单例实现方式都存在小小的缺陷,那么有没有一种方案,既能够实现延迟加载,又能够实现线程安全呢?
还真有高人想到这样的解决方案了,这个解决方案被称为Lazy initialization holder class模式,这个模式综合使用了Java的类级内部类和多线程缺省同步锁的知识,很巧妙的同时实现了延迟加载和线程安全。1:先来看点相应的基础知识
先简单的看看类级内部类相关的知识。
什么是类级内部类?
简单点说,类级内部类指的是:有static修饰的成员式内部 ...
3.3 延迟加载的思想
单例模式的懒汉式实现方式体现了延迟加载的思想,什么是延迟加载呢?
通俗点说,就是一开始不要加载资源或者数据,一直等,等到马上就要使用这个资源或者数据了,躲不过去了才加载,所以也称Lazy Load,不是懒惰啊,是“延迟加载”,这在实际开发中是一种很常见的思想,尽可能的节约资源。
体现在什么地方呢?看如下代码:
3.4 缓存的思想
单例模式的懒汉式实现还体现了缓存的思想,缓存也是实际开发中非常常见的功能。
简单讲就是,如果某些资源或者数据会被频繁的使用,而这些资源或数据存储在系 ...
3 模式讲解
3.1 认识单例模式
(1)单例模式的功能
单例模式的功能是用来保证这个类在运行期间只会被创建一个类实例,另外单例模式还提供了一个全局唯一访问这个类实例的访问点,就是那个getInstance的方法 ...
单例模式(Singleton)
1 场景问题
1.1 读取配置文件的内容
考虑这样一个应用,读取配置文件的内容。
很多应用项目,都有与应用相关的配置文件,这些配置文件多是由项目开发人员自定义的,在 ...
2 解决方案
2.1 桥接模式来解决
用来解决上述问题的一个合理的解决方案,就是使用桥接模式。那么什么是桥接模式呢?
(1)桥接模式定义 将抽象部分与它的实现部分分离,使它们都可以独立地变化。
(2)应用桥接模式来解决的思路 仔细分析上面的示例,根据示例的功能要求,示例的变化具有两个纬度,一个纬度是抽象的消息这边,包括普通消息、加急消息和特急消息,这几个抽象的消息本身就具有一定的关系,加急消息和特急消息会扩展普通消息;另一个纬度在具体的消息发送方式上,包括站内短消息、Email和手机短信息,这几个方式是平等的,可被切换的方式。这 ...
来写一个大家既陌生又熟悉的设计模式,也是非常实用的一个设计模式,那就是桥接模式。
说陌生是很多朋友并不熟悉这个设计模式,说熟悉是很多人经常见到或者是下意识的用到这个设计模式,只是不知道罢了。桥 ...
为什么要区分J2EE容器和J2EE应用系统?
我们知道,J2EE应用系统只有部署在J2EE容器中才能运行,那么为什么划分为J2EE容器和J2EE 应用系统? 通过对J2EE容器运行机制的分析(见我的电子教材“EJB实用原理”),我们可以 ...