博客园 - 云飞龙行
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=3216
2017-05-17T22:50:09Z
云飞龙行
https://www.cnblogs.com/sjms/
feed.cnblogs.com
https://www.cnblogs.com/sjms/archive/2010/12/24/1915669.html
研磨设计模式之简单工厂模式-2 - 云飞龙行
2 解决方案1 简单工厂来解决 用来解决上述问题的一个合理的解决方案就是简单工厂,那么什么是简单工厂呢?1:简单工厂定义2:应用简单工厂来解决的思路 分析上面的问题,虽然不能让模块外部知道模块内的具体实现,但是模块内部是可以知道实现类的,而且创建接口是需要具体实现类的。 那么干脆在模块内部新建一个类,在这个类里面来创建接口,然后把创建好的接口返回给客户端,这样外部应用就只需要根据这个类来获取相应的接口对象,然后就可以操作接口定义的方法了。把这样的对象称为简单工厂,就叫Factory吧。 这样一来,客户端就可以通过这个Factory来获取需要的接口对象,然后调用接口的方法来实现需要的功能,而且客
2010-12-24T02:31:00Z
2010-12-24T02:31:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】2 解决方案1 简单工厂来解决 用来解决上述问题的一个合理的解决方案就是简单工厂,那么什么是简单工厂呢?1:简单工厂定义2:应用简单工厂来解决的思路 分析上面的问题,虽然不能让模块外部知道模块内的具体实现,但是模块内部是可以知道实现类的,而且创建接口是需要具体实现类的。 那么干脆在模块内部新建一个类,在这个类里面来创建接口,然后把创建好的接口返回给客户端,这样外部应用就只需要根据这个类来获取相应的接口对象,然后就可以操作接口定义的方法了。把这样的对象称为简单工厂,就叫Factory吧。 这样一来,客户端就可以通过这个Factory来获取需要的接口对象,然后调用接口的方法来实现需要的功能,而且客 <a href="https://www.cnblogs.com/sjms/archive/2010/12/24/1915669.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/12/24/1915551.html
研磨设计模式终于上市了 - 云飞龙行
首先感谢大家长久以来的支持和鼓励,没有你们的大力帮助,是很难坚持走到今天的,因此,向你们致以诚挚的感谢! 另外有很多朋友在博客里面、QQ里面询问,到底什么时候能够看到书,这里集中公告一下: 目前书已经上市,网店和书店应该都有了,当然,远一点的地方,可能书店要上得慢一点,过几天应该就会有的。这里推荐大家去当当网购买,因为:1:当当网 是 75折,与其他家网店同价,都是最低的2:当当网现在在搞活动,全场满119 返 30,这是很合适的当当网的销售链接:http://product.dangdang.com/product.aspx?product_id=20994349&ref=search-0-
2010-12-24T01:44:00Z
2010-12-24T01:44:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】首先感谢大家长久以来的支持和鼓励,没有你们的大力帮助,是很难坚持走到今天的,因此,向你们致以诚挚的感谢! 另外有很多朋友在博客里面、QQ里面询问,到底什么时候能够看到书,这里集中公告一下: 目前书已经上市,网店和书店应该都有了,当然,远一点的地方,可能书店要上得慢一点,过几天应该就会有的。这里推荐大家去当当网购买,因为:1:当当网 是 75折,与其他家网店同价,都是最低的2:当当网现在在搞活动,全场满119 返 30,这是很合适的当当网的销售链接:http://product.dangdang.com/product.aspx?product_id=20994349&ref=search-0- <a href="https://www.cnblogs.com/sjms/archive/2010/12/24/1915551.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/12/06/1897934.html
研磨设计模式之简单工厂模式-1 - 云飞龙行
继续研磨设计模式,来个简单的简单工厂 简单工厂不是一个标准的设计模式,但是它实在是太常用了,简单而又神奇,所以还是需要好好掌握的,就当是对学习设计模式的热身运动吧。 为了保持一致性,我们尽量按照学习其它模式的步骤来进行学习。1 场景问题 大家都知道,在Java应用开发中,要“面向接口编程”。 那么什么是接口?接口有什么作用?接口如何使用?一起来回顾一下:1.1 接口回顾(1)Java中接口的概念 ...
2010-12-06T09:02:00Z
2010-12-06T09:02:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】继续研磨设计模式,来个简单的简单工厂 简单工厂不是一个标准的设计模式,但是它实在是太常用了,简单而又神奇,所以还是需要好好掌握的,就当是对学习设计模式的热身运动吧。 为了保持一致性,我们尽量按照学习其它模式的步骤来进行学习。1 场景问题 大家都知道,在Java应用开发中,要“面向接口编程”。 那么什么是接口?接口有什么作用?接口如何使用?一起来回顾一下:1.1 接口回顾(1)Java中接口的概念 ... <a href="https://www.cnblogs.com/sjms/archive/2010/12/06/1897934.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/11/01/1866118.html
研磨设计模式之 装饰模式-4 - 云飞龙行
3.3 装饰模式和AOP 装饰模式和AOP在思想上有共同之处。可能有些朋友还不太了解AOP,下面先简单介绍一下AOP的基础知识。1:什么是AOP——面向方面编程 AOP是一种编程范式,提供从另一个角度来考虑程序结构以完善面向对象编程(OOP)。 在面向对象开发中,考虑系统的角度通常是纵向的,比如我们经常画出的如下的系统架构图,默认都是从上到下,上层依赖于下层,如图5所示: ...
2010-11-01T04:57:00Z
2010-11-01T04:57:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】3.3 装饰模式和AOP 装饰模式和AOP在思想上有共同之处。可能有些朋友还不太了解AOP,下面先简单介绍一下AOP的基础知识。1:什么是AOP——面向方面编程 AOP是一种编程范式,提供从另一个角度来考虑程序结构以完善面向对象编程(OOP)。 在面向对象开发中,考虑系统的角度通常是纵向的,比如我们经常画出的如下的系统架构图,默认都是从上到下,上层依赖于下层,如图5所示: ... <a href="https://www.cnblogs.com/sjms/archive/2010/11/01/1866118.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/10/31/1865494.html
研磨设计模式之 装饰模式-3 - 云飞龙行
3 模式讲解3.1 认识装饰模式(1)模式功能 装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象增加功能,相当于是改变了对象的外观。当装饰过后,从外部使用系统的角度看,就不再是使用原始的那个对象了,而是使用被一系列的装饰器装饰过后的对象。 这样就能够灵活的改变一个对象的功能,只要动态组合的装饰器发生了改变,那么最终所得到的对象的功能也就发生了改变。 变相的还得到了另外一个好处,那就是...
2010-10-31T02:21:00Z
2010-10-31T02:21:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】3 模式讲解3.1 认识装饰模式(1)模式功能 装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象增加功能,相当于是改变了对象的外观。当装饰过后,从外部使用系统的角度看,就不再是使用原始的那个对象了,而是使用被一系列的装饰器装饰过后的对象。 这样就能够灵活的改变一个对象的功能,只要动态组合的装饰器发生了改变,那么最终所得到的对象的功能也就发生了改变。 变相的还得到了另外一个好处,那就是... <a href="https://www.cnblogs.com/sjms/archive/2010/10/31/1865494.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/10/26/1861108.html
研磨设计模式之 装饰模式-2 - 云飞龙行
2 解决方案2.1 装饰模式来解决 用来解决上述问题的一个合理的解决方案,就是使用装饰模式。那么什么是装饰模式呢?(1)装饰模式定义(2)应用装饰模式来解决的思路 虽然经过简化,业务简单了很多,但是需要解决的问题不会少,还是要解决:要透明的给一个对象增加功能,并实现功能的动态组合。 所谓透明的给一个对象增加功能,换句话说就是要给一个对象增加功能,但是不能让这个对象知道,也就是不能去改动这个对象。而...
2010-10-26T00:57:00Z
2010-10-26T00:57:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】2 解决方案2.1 装饰模式来解决 用来解决上述问题的一个合理的解决方案,就是使用装饰模式。那么什么是装饰模式呢?(1)装饰模式定义(2)应用装饰模式来解决的思路 虽然经过简化,业务简单了很多,但是需要解决的问题不会少,还是要解决:要透明的给一个对象增加功能,并实现功能的动态组合。 所谓透明的给一个对象增加功能,换句话说就是要给一个对象增加功能,但是不能让这个对象知道,也就是不能去改动这个对象。而... <a href="https://www.cnblogs.com/sjms/archive/2010/10/26/1861108.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/10/18/1853979.html
研磨设计模式之 装饰模式-1 - 云飞龙行
装饰模式(Decorator)1 场景问题1.1 复杂的奖金计算 考虑这样一个实际应用:就是如何实现灵活的奖金计算。 奖金计算是相对复杂的功能,尤其是对于业务部门的奖金计算方式,是非常复杂的,除了业务功能复杂外,另外一个麻烦之处是计算方式还经常需要变动,因为业务部门经常通过调整奖金的计算方式来激励士气。 先从业务上看看现有的奖金计算方式的复杂性: 首先是奖金分类:对于个人,大致有个人当月业务奖金、...
2010-10-18T01:14:00Z
2010-10-18T01:14:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】装饰模式(Decorator)1 场景问题1.1 复杂的奖金计算 考虑这样一个实际应用:就是如何实现灵活的奖金计算。 奖金计算是相对复杂的功能,尤其是对于业务部门的奖金计算方式,是非常复杂的,除了业务功能复杂外,另外一个麻烦之处是计算方式还经常需要变动,因为业务部门经常通过调整奖金的计算方式来激励士气。 先从业务上看看现有的奖金计算方式的复杂性: 首先是奖金分类:对于个人,大致有个人当月业务奖金、... <a href="https://www.cnblogs.com/sjms/archive/2010/10/18/1853979.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/09/16/1828077.html
研磨设计模式之 桥接模式-4 - 云飞龙行
3.4 广义桥接-Java中无处不桥接 使用Java编写程序,一个很重要的原则就是“面向接口编程”,说得准确点应该是“面向抽象编程”,由于在Java开发中,更多的使用接口而非抽象类,因此通常就说成“面向接口编程”了。 接口把具体的实现和使用接口的客户程序分离开来,从而使得具体的实现和使用接口的客户程序可以分别扩展,而不会相互影响。使用接口的程序结构如图12所示:图12 使用接口的程序结构示意图 可...
2010-09-16T06:23:00Z
2010-09-16T06:23:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】3.4 广义桥接-Java中无处不桥接 使用Java编写程序,一个很重要的原则就是“面向接口编程”,说得准确点应该是“面向抽象编程”,由于在Java开发中,更多的使用接口而非抽象类,因此通常就说成“面向接口编程”了。 接口把具体的实现和使用接口的客户程序分离开来,从而使得具体的实现和使用接口的客户程序可以分别扩展,而不会相互影响。使用接口的程序结构如图12所示:图12 使用接口的程序结构示意图 可... <a href="https://www.cnblogs.com/sjms/archive/2010/09/16/1828077.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/09/13/1825203.html
研磨设计模式之 桥接模式-3 - 云飞龙行
3 模式讲解3.1 认识桥接模式(1)什么是桥接 在桥接模式里面,不太好理解的就是桥接的概念,什么是桥接?为何需要桥接?如何桥接?把这些问题搞清楚了,也就基本明白桥接的含义了。 一个一个来,先看什么是桥接?所谓桥接,通俗点说就是在不同的东西之间搭一个桥,让他们能够连接起来,可以相互通讯和使用。那么在桥接模式中到底是给什么东西来搭桥呢?就是为被分离了的抽象部分和实现部分来搭桥,比如前面示例中抽象的消...
2010-09-13T10:10:00Z
2010-09-13T10:10:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】3 模式讲解3.1 认识桥接模式(1)什么是桥接 在桥接模式里面,不太好理解的就是桥接的概念,什么是桥接?为何需要桥接?如何桥接?把这些问题搞清楚了,也就基本明白桥接的含义了。 一个一个来,先看什么是桥接?所谓桥接,通俗点说就是在不同的东西之间搭一个桥,让他们能够连接起来,可以相互通讯和使用。那么在桥接模式中到底是给什么东西来搭桥呢?就是为被分离了的抽象部分和实现部分来搭桥,比如前面示例中抽象的消... <a href="https://www.cnblogs.com/sjms/archive/2010/09/13/1825203.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/09/06/1818782.html
研磨设计模式之 桥接模式-2 - 云飞龙行
2 解决方案2.1 桥接模式来解决 用来解决上述问题的一个合理的解决方案,就是使用桥接模式。那么什么是桥接模式呢?(1)桥接模式定义 将抽象部分与它的实现部分分离,使它们都可以独立地变化。(2)应用桥接模式来解决的思路 仔细分析上面的示例,根据示例的功能要求,示例的变化具有两个纬度,一个纬度是抽象的消息这边,包括普通消息、加急消息和特急消息,这几个抽象的消息本身就具有一定的关系,加急消息和特急消息...
2010-09-06T01:19:00Z
2010-09-06T01:19:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】2 解决方案2.1 桥接模式来解决 用来解决上述问题的一个合理的解决方案,就是使用桥接模式。那么什么是桥接模式呢?(1)桥接模式定义 将抽象部分与它的实现部分分离,使它们都可以独立地变化。(2)应用桥接模式来解决的思路 仔细分析上面的示例,根据示例的功能要求,示例的变化具有两个纬度,一个纬度是抽象的消息这边,包括普通消息、加急消息和特急消息,这几个抽象的消息本身就具有一定的关系,加急消息和特急消息... <a href="https://www.cnblogs.com/sjms/archive/2010/09/06/1818782.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/09/01/1814718.html
研磨设计模式之 桥接模式-1 - 云飞龙行
来写一个大家既陌生又熟悉的设计模式,也是非常实用的一个设计模式,那就是桥接模式。 说陌生是很多朋友并不熟悉这个设计模式,说熟悉是很多人经常见到或者是下意识的用到这个设计模式,只是不知道罢了。桥接模式是非常实用的一个模式,下面就来写写它。 桥接模式(Bridge)1 场景问题1.1 发送提示消息 考虑这样一个实际的业务功能:发送提示消息。基本上所有带业务流程处理的系统都会有这样的功能,比如某人有新的...
2010-09-01T03:50:00Z
2010-09-01T03:50:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】来写一个大家既陌生又熟悉的设计模式,也是非常实用的一个设计模式,那就是桥接模式。 说陌生是很多朋友并不熟悉这个设计模式,说熟悉是很多人经常见到或者是下意识的用到这个设计模式,只是不知道罢了。桥接模式是非常实用的一个模式,下面就来写写它。 桥接模式(Bridge)1 场景问题1.1 发送提示消息 考虑这样一个实际的业务功能:发送提示消息。基本上所有带业务流程处理的系统都会有这样的功能,比如某人有新的... <a href="https://www.cnblogs.com/sjms/archive/2010/09/01/1814718.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/08/31/1813292.html
研磨设计模式之 单例模式-4 - 云飞龙行
3.8 在Java中一种更好的单例实现方式 根据上面的分析,常见的两种单例实现方式都存在小小的缺陷,那么有没有一种方案,既能够实现延迟加载,又能够实现线程安全呢? 还真有高人想到这样的解决方案了,这个解决方案被称为Lazy initialization holder class模式,这个模式综合使用了Java的类级内部类和多线程缺省同步锁的知识,很巧妙的同时实现了延迟加载和线程安全。1:先来看点相...
2010-08-31T00:34:00Z
2010-08-31T00:34:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】3.8 在Java中一种更好的单例实现方式 根据上面的分析,常见的两种单例实现方式都存在小小的缺陷,那么有没有一种方案,既能够实现延迟加载,又能够实现线程安全呢? 还真有高人想到这样的解决方案了,这个解决方案被称为Lazy initialization holder class模式,这个模式综合使用了Java的类级内部类和多线程缺省同步锁的知识,很巧妙的同时实现了延迟加载和线程安全。1:先来看点相... <a href="https://www.cnblogs.com/sjms/archive/2010/08/31/1813292.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/08/30/1812303.html
研磨设计模式之 单例模式-3 - 云飞龙行
3.3 延迟加载的思想 单例模式的懒汉式实现方式体现了延迟加载的思想,什么是延迟加载呢? 通俗点说,就是一开始不要加载资源或者数据,一直等,等到马上就要使用这个资源或者数据了,躲不过去了才加载,所以也称Lazy Load,不是懒惰啊,是“延迟加载”,这在实际开发中是一种很常见的思想,尽可能的节约资源。 体现在什么地方呢?看如下代码:3.4 缓存的思想 单例模式的懒汉式实现还体现了缓存的思想,缓存也...
2010-08-30T01:04:00Z
2010-08-30T01:04:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】3.3 延迟加载的思想 单例模式的懒汉式实现方式体现了延迟加载的思想,什么是延迟加载呢? 通俗点说,就是一开始不要加载资源或者数据,一直等,等到马上就要使用这个资源或者数据了,躲不过去了才加载,所以也称Lazy Load,不是懒惰啊,是“延迟加载”,这在实际开发中是一种很常见的思想,尽可能的节约资源。 体现在什么地方呢?看如下代码:3.4 缓存的思想 单例模式的懒汉式实现还体现了缓存的思想,缓存也... <a href="https://www.cnblogs.com/sjms/archive/2010/08/30/1812303.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/08/28/1810627.html
研磨设计模式之 单例模式-2 - 云飞龙行
3 模式讲解3.1 认识单例模式(1)单例模式的功能 单例模式的功能是用来保证这个类在运行期间只会被创建一个类实例,另外单例模式还提供了一个全局唯一访问这个类实例的访问点,就是那个getInstance的方法。不管采用懒汉式还是饿汉式的实现方式,这个全局访问点是一样的。 对于单例模式而言,不管采用何种实现方式,它都是只关心类实例的创建问题,并不关心具体的业务功能。(2)单例模式的范围 也就是在多大...
2010-08-28T00:27:00Z
2010-08-28T00:27:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】3 模式讲解3.1 认识单例模式(1)单例模式的功能 单例模式的功能是用来保证这个类在运行期间只会被创建一个类实例,另外单例模式还提供了一个全局唯一访问这个类实例的访问点,就是那个getInstance的方法。不管采用懒汉式还是饿汉式的实现方式,这个全局访问点是一样的。 对于单例模式而言,不管采用何种实现方式,它都是只关心类实例的创建问题,并不关心具体的业务功能。(2)单例模式的范围 也就是在多大... <a href="https://www.cnblogs.com/sjms/archive/2010/08/28/1810627.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/08/27/1809759.html
研磨设计模式之 单例模式-1 - 云飞龙行
声明:都是原创的文章看到很多朋友在写单例,也来凑个热闹,虽然很简单,但是也有很多知识点在单例里面,看看是否能写出点不一样来。单例模式(Singleton)1 场景问题1.1 读取配置文件的内容 考虑这样一个应用,读取配置文件的内容。 很多应用项目,都有与应用相关的配置文件,这些配置文件多是由项目开发人员自定义的,在里面定义一些应用需要的参数数据。当然在实际的项目中,这种配置文件多采用xml格式的。...
2010-08-27T00:38:00Z
2010-08-27T00:38:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】声明:都是原创的文章看到很多朋友在写单例,也来凑个热闹,虽然很简单,但是也有很多知识点在单例里面,看看是否能写出点不一样来。单例模式(Singleton)1 场景问题1.1 读取配置文件的内容 考虑这样一个应用,读取配置文件的内容。 很多应用项目,都有与应用相关的配置文件,这些配置文件多是由项目开发人员自定义的,在里面定义一些应用需要的参数数据。当然在实际的项目中,这种配置文件多采用xml格式的。... <a href="https://www.cnblogs.com/sjms/archive/2010/08/27/1809759.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/08/25/1807764.html
研磨设计模式之 命令模式-3 - 云飞龙行
3.3 可撤销的操作 可撤销操作的意思就是:放弃该操作,回到未执行该操作前的状态。这个功能是一个非常重要的功能,几乎所有GUI应用里面都有撤消操作的功能。GUI的菜单是命令模式最典型的应用之一,所以你总是能在菜单上找到撤销这样的菜单项。 既然这么常用,那该如何实现呢? 有两种基本的思路来实现可撤销的操作,一种是补偿式,又称反操作式:比如被撤销的操作是加的功能,那撤消的实现就变成减的功能;同理被撤销...
2010-08-25T00:24:00Z
2010-08-25T00:24:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】3.3 可撤销的操作 可撤销操作的意思就是:放弃该操作,回到未执行该操作前的状态。这个功能是一个非常重要的功能,几乎所有GUI应用里面都有撤消操作的功能。GUI的菜单是命令模式最典型的应用之一,所以你总是能在菜单上找到撤销这样的菜单项。 既然这么常用,那该如何实现呢? 有两种基本的思路来实现可撤销的操作,一种是补偿式,又称反操作式:比如被撤销的操作是加的功能,那撤消的实现就变成减的功能;同理被撤销... <a href="https://www.cnblogs.com/sjms/archive/2010/08/25/1807764.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/07/16/1778527.html
研磨设计模式之 命令模式-2 - 云飞龙行
3 模式讲解3.1 认识命令模式(1)命令模式的关键 命令模式的关键之处就是把请求封装成为对象,也就是命令对象,并定义了统一的执行操作的接口,这个命令对象可以被存储、转发、记录、处理、撤销等,整个命令模式都是围绕这个对象在进行。(2)命令模式的组装和调用 在命令模式中经常会有一个命令的组装者,用它来维护命令的“虚”实现和真实实现之间的关系。如果是超级智能的命令,也就是说命令对象自己完全实现好了,不...
2010-07-15T23:17:00Z
2010-07-15T23:17:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】3 模式讲解3.1 认识命令模式(1)命令模式的关键 命令模式的关键之处就是把请求封装成为对象,也就是命令对象,并定义了统一的执行操作的接口,这个命令对象可以被存储、转发、记录、处理、撤销等,整个命令模式都是围绕这个对象在进行。(2)命令模式的组装和调用 在命令模式中经常会有一个命令的组装者,用它来维护命令的“虚”实现和真实实现之间的关系。如果是超级智能的命令,也就是说命令对象自己完全实现好了,不... <a href="https://www.cnblogs.com/sjms/archive/2010/07/16/1778527.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/07/09/1774069.html
研磨设计模式之 命令模式-1 - 云飞龙行
命令模式也是开发中常见的一个模式,也不是太难,比较简单,下面来详细的写一下命令模式。命令模式(Command)1 场景问题1.1 如何开机 估计有些朋友看到这个标题会非常奇怪,电脑装配好了,如何开机?不就是按下启动按钮就可以了吗?难道还有什么玄机不成。 对于使用电脑的客户——就是我们来说,开机确实很简单,按下启动按钮,然后耐心等待就可以了。但是当我们按下启动按钮过后呢?谁来处理?如何处理?都经历了...
2010-07-08T23:29:00Z
2010-07-08T23:29:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】命令模式也是开发中常见的一个模式,也不是太难,比较简单,下面来详细的写一下命令模式。命令模式(Command)1 场景问题1.1 如何开机 估计有些朋友看到这个标题会非常奇怪,电脑装配好了,如何开机?不就是按下启动按钮就可以了吗?难道还有什么玄机不成。 对于使用电脑的客户——就是我们来说,开机确实很简单,按下启动按钮,然后耐心等待就可以了。但是当我们按下启动按钮过后呢?谁来处理?如何处理?都经历了... <a href="https://www.cnblogs.com/sjms/archive/2010/07/09/1774069.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/07/07/1772577.html
研磨设计模式之 策略模式-5 - 云飞龙行
3.4 策略模式结合模板方法模式 在实际应用策略模式的过程中,经常会出现这样一种情况,就是发现这一系列算法的实现上存在公共功能,甚至这一系列算法的实现步骤都是一样的,只是在某些局部步骤上有所不同,这个时候,就需要对策略模式进行些许的变化使用了。 对于一系列算法的实现上存在公共功能的情况,策略模式可以有如下三种实现方式:一个是在上下文当中实现公共功能,让所有具体的策略算法回调这些方法。另外一种情况就...
2010-07-06T22:51:00Z
2010-07-06T22:51:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】3.4 策略模式结合模板方法模式 在实际应用策略模式的过程中,经常会出现这样一种情况,就是发现这一系列算法的实现上存在公共功能,甚至这一系列算法的实现步骤都是一样的,只是在某些局部步骤上有所不同,这个时候,就需要对策略模式进行些许的变化使用了。 对于一系列算法的实现上存在公共功能的情况,策略模式可以有如下三种实现方式:一个是在上下文当中实现公共功能,让所有具体的策略算法回调这些方法。另外一种情况就... <a href="https://www.cnblogs.com/sjms/archive/2010/07/07/1772577.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sjms/archive/2010/07/01/1768806.html
研磨设计模式之 策略模式-4 - 云飞龙行
3.3 Context和Strategy的关系 在策略模式中,通常是上下文使用具体的策略实现对象,反过来,策略实现对象也可以从上下文获取所需要的数据,因此可以将上下文当参数传递给策略实现对象,这种情况下上下文和策略实现对象是紧密耦合的。 在这种情况下,上下文封装着具体策略对象进行算法运算所需要的数据,具体策略对象通过回调上下文的方法来获取这些数据。 甚至在某些情况下,策略实现对象还可以回调上下文的...
2010-07-01T00:32:00Z
2010-07-01T00:32:00Z
云飞龙行
https://www.cnblogs.com/sjms/
【摘要】3.3 Context和Strategy的关系 在策略模式中,通常是上下文使用具体的策略实现对象,反过来,策略实现对象也可以从上下文获取所需要的数据,因此可以将上下文当参数传递给策略实现对象,这种情况下上下文和策略实现对象是紧密耦合的。 在这种情况下,上下文封装着具体策略对象进行算法运算所需要的数据,具体策略对象通过回调上下文的方法来获取这些数据。 甚至在某些情况下,策略实现对象还可以回调上下文的... <a href="https://www.cnblogs.com/sjms/archive/2010/07/01/1768806.html" target="_blank">阅读全文</a>