E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
研磨设计模式
研磨设计模式
之抽象工厂模式-1
抽象工厂模式(AbstractFactory) http://chjavach.javaeye.com/blog/7929071.1 场景问题1.1.1 选择组装电脑的配件 举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如:CPU、硬盘、内存、主板、电源、机箱等等。为了使讨论简单点,只考虑选择CPU和主板的问题。 事实上,我们在选择CP
zhjp4295216
·
2010-10-25 16:00
研磨设计模式
之抽象工厂模式-1
继续模式之旅,来个简单点的 抽象工厂模式(Abstract Factory) 1.1 场景问题 1.1.1 选择组装电脑的配件 举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通
chjavach
·
2010-10-25 10:00
设计模式
生活
idea
出版
研磨设计模式
之装饰模式-4
3.3 装饰模式和AOP 装饰模式和AOP在思想上有共同之处。可能有些朋友还不太了解AOP,下面先简单介绍一下AOP的基础知识。1:什么是AOP——面向方面编程 AOP是一种编程范式,提供从另一个角度来考虑程序结构以完善面向对象编程(OOP)。 在面向对象开发中,考虑系统的角度通常是纵向的,比如我们经常画出的如下的系统架构图,默认都是从上到下,上层依赖于下层,如
seaizon
·
2010-10-19 16:00
设计模式
AOP
数据结构
编程
配置管理
研磨设计模式
之装饰模式-4
3.3 装饰模式和AOP 装饰模式和AOP在思想上有共同之处。可能有些朋友还不太了解AOP,下面先简单介绍一下AOP的基础知识。1:什么是AOP——面向方面编程 AOP是一种编程范式,提供从另一个角度来考虑程序结构以完善面向对象编程(OOP)。 在面向对象开发中,考虑系统的角度通常是纵向的,比如我们经常画出的如下的系统架构图,默认都是从上到下,上层依赖于下层,如
chjavach
·
2010-10-18 08:00
设计模式
AOP
算法
PHP
mobile
研磨设计模式
之装饰模式-3
3 模式讲解3.1 认识装饰模式(1)模式功能 装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象增加功能,相当于是改变了对象的外观。当装饰过后,从外部使用系统的角度看,就不再是使用原始的那个对象了,而是使用被一系列的装饰器装饰过后的对象。 这样就能够灵活的改变一个对象的功能,只要动态组合的装饰器发生了改变,那么最终所得到的对象的功能也就发生了改变。
seaizon
·
2010-10-11 09:00
设计模式
数据结构
算法
OS
IOC
研磨设计模式
之装饰模式-3
3 模式讲解3.1 认识装饰模式(1)模式功能 装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象增加功能,相当于是改变了对象的外观。当装饰过后,从外部使用系统的角度看,就不再是使用原始的那个对象了,而是使用被一系列的装饰器装饰过后的对象。 这样就能够灵活的改变一个对象的功能,只要动态组合的装饰器发生了改变,那么最终所得到的对象的功能也就发生了改变。
chjavach
·
2010-10-11 07:00
设计模式
数据结构
OS
Flash
idea
研磨设计模式
之装饰模式-2
2 解决方案2.1 装饰模式来解决 用来解决上述问题的一个合理的解决方案,就是使用装饰模式。那么什么是装饰模式呢?(1)装饰模式定义 (2)应用装饰模式来解决的思路 虽然经过简化,业务简单了很多,但是需要解决的问题不会少,还是要解决:要透明的给一个对象增加功能,并实现功能的动态组合。 所谓透明的给一个对象增加功能,换句话说就是要给一个对象增加功能,但是不能让这个
seaizon
·
2010-09-28 15:00
设计模式
C++
c
生活
C#
研磨设计模式
之装饰模式-2
2 解决方案2.1 装饰模式来解决 用来解决上述问题的一个合理的解决方案,就是使用装饰模式。那么什么是装饰模式呢?(1)装饰模式定义 (2)应用装饰模式来解决的思路 虽然经过简化,业务简单了很多,但是需要解决的问题不会少,还是要解决:要透明的给一个对象增加功能,并实现功能的动态组合。 所谓透明的给一个对象增加功能,换句话说就是要给一个对象增加功能,但是不能让这个
chjavach
·
2010-09-27 08:00
设计模式
C++
c
C#
idea
研磨设计模式
之装饰模式-1
装饰模式(Decorator) 1 场景问题 1.1 复杂的奖金计算 考虑这样一个实际应用:就是如何实现灵活的奖金计算。 奖金计算是相对复杂的功能,尤其是对于业务部门的奖金计算方式,是非常复杂的,除了业
seaizon
·
2010-09-26 08:00
设计模式
算法
Blog
软件测试
研磨设计模式
之装饰模式-1
装饰模式(Decorator) 1 场景问题 1.1 复杂的奖金计算 考虑这样一个实际应用:就是如何实现灵活的奖金计算。 奖金计算是相对复杂的功能,尤其是对于业务部门的奖金计算方式,是非常复
chjavach
·
2010-09-20 08:00
设计模式
算法
IE
软件测试
idea
研磨设计模式
之命令模式-1
命令模式也是开发中常见的一个模式,也不是太难,比较简单,下面来详细的写一下命令模式。 命令模式(Command)1 1. 场景问题1.1 如何开机 估计有些朋友看到这个标题会非常奇怪,电脑装配好了,如何开机?不就是按下启动按钮就可以了吗?难道还有什么玄机不成。 对于使用电脑的客户——就是
liliugen
·
2010-09-14 09:00
设计模式
数据结构
生活
软件测试
研磨设计模式
之工厂方法模式-5
3.3 平行的类层次结构(1)什么是平行的类层次结构呢? 简单点说,假如有两个类层次结构,其中一个类层次中的每个类在另一个类层次中都有一个对应的类的结构,就被称为平行的类层次结构。 举个例子来说,硬盘对象有很多种,如分成台式机硬盘和笔记本硬盘,在台式机硬盘的具体实现上面,又有希捷、西数等不同品牌的实现,同样在笔记本硬盘上,也有希捷、日立、IBM等不同品牌的实现;硬盘对象具有
liliugen
·
2010-09-13 14:00
设计模式
数据结构
编程
IBM
化工
研磨设计模式
之工厂方法模式-4
3.2 工厂方法模式与IoC/DIIoC——InversionofControl 控制反转DI——DependencyInjection 依赖注入1:如何理解IoC/DI 要想理解上面两个概念,就必须搞清楚如下的问题:•参与者都有谁?•依赖:谁依赖于谁?为什么需要依赖?•注入:谁注入于谁?到底注入什么?•控制反转:谁控制谁?控制什么?为何叫反转(有反转就
liliugen
·
2010-09-13 14:00
设计模式
C++
c
C#
IOC
研磨设计模式
之工厂方法模式-3
3 模式讲解3.1 认识工厂方法模式(1)模式的功能 工厂方法的主要功能是让父类在不知道具体实现的情况下,完成自身的功能调用,而具体的实现延迟到子类来实现。 这样在设计的时候,不用去考虑具体的实现,需要某个对象,把它通过工厂方法返回就好了,在使用这些对象实现功能的时候还是通过接口来操作,这非常类似于IoC/DI的思想,这个在后面给大家稍详细点介绍一下。(2)实现成抽象类
liliugen
·
2010-09-10 17:00
设计模式
数据结构
IOC
研磨设计模式
之桥接模式-4
3.4 广义桥接-Java中无处不桥接 使用Java编写程序,一个很重要的原则就是“面向接口编程”,说得准确点应该是“面向抽象编程”,由于在Java开发中,更多的使用接口而非抽象类,因此通常就说成“面向接口编程”了。 接口把具体的实现和使用接口的客户程序分离开来,从而使得具体的实现和使用接口的客户程序可以分别扩展,而不会相互影响。使用接口的程序结构如图12所示:
seaizon
·
2010-09-09 19:00
设计模式
数据结构
oracle
编程
算法
研磨设计模式
之桥接模式-3
3 模式讲解3.1 认识桥接模式(1)什么是桥接 在桥接模式里面,不太好理解的就是桥接的概念,什么是桥接?为何需要桥接?如何桥接?把这些问题搞清楚了,也就基本明白桥接的含义了。 一个一个来,先看什么是桥接?所谓桥接,通俗点说就是在不同的东西之间搭一个桥,让他们能够连接起来,可以相互通讯和使用。那么在桥接模式中到底是给什么东西来搭桥呢?就是为被分离了的抽象部分和实现部分来搭桥
seaizon
·
2010-09-09 18:00
设计模式
数据结构
sql
jdbc
IOC
研磨设计模式
之工厂方法模式-2
2 解决方案2.1 工厂方法模式来解决 用来解决上述问题的一个合理的解决方案就是工厂方法模式。那么什么是工厂方法模式呢?(1)工厂方法模式定义 定义一个用于创建对象的接口,让子类决定实例化哪一个类,FactoryMethod使一个类的实例化延迟到其子类。(2)应用工厂方法模式来解决的思路 仔细分析上面的问题,事实上在实现导出数据的业务功能对象里面,根本就不
liliugen
·
2010-09-08 10:00
设计模式
数据结构
编程
研磨设计模式
之工厂方法模式-1(来自chjavach)
做Java一晃就十年了,最近手痒痒,也决定跟随一下潮流,整个博客,写点东西,就算对自己的知识进行一个梳理和总结,也跟朋友们交流交流,希望能坚持下去。 先写写设计模式方面的内容吧,就是GoF的23个模式,先从大家最熟悉的工厂方法模式开始,这个最简单,明白的人多,看看是否能写出点跟别人不一样的东西,欢迎大家来热烈讨论,提出建议或意见,并进行批评指正,一概虚心接受,在此先谢过了! 另外,大家也可
liliugen
·
2010-09-08 10:00
设计模式
数据结构
框架
网络应用
企业应用
研磨设计模式
之工厂方法模式-5
3.3 平行的类层次结构(1)什么是平行的类层次结构呢? 简单点说,假如有两个类层次结构,其中一个类层次中的每个类在另一个类层次中都有一个对应的类的结构,就被称为平行的类层次结构。 举个例子来说,硬盘对象有很多种,如分成台式机硬盘和笔记本硬盘,在台式机硬盘的具体实现上面,又有希捷、西数等不同品牌的实现,同样在笔记本硬盘上,也有希捷、日立、IBM等不同品牌的实现;硬盘对象具有
seaizon
·
2010-09-07 20:00
设计模式
数据结构
编程
IBM
化工
研磨设计模式
之工厂方法模式-4
3.2 工厂方法模式与IoC/DI IoC——InversionofControl 控制反转 DI——DependencyInjection 依赖注入1:如何理解IoC/DI 要想理解上面两个概念,就必须搞清楚如下的问题:参与者都有谁?依赖:谁依赖于谁?为什么需要依赖? 注入:谁注入于谁?到底注入什么?控制反转:谁控制谁?控制什么?为何叫反转(有反转就应该有正转了)?依赖注入和控制反
seaizon
·
2010-09-07 19:00
设计模式
C++
c
C#
IOC
研磨设计模式
之工厂方法模式-3
3 模式讲解3.1 认识工厂方法模式(1)模式的功能 工厂方法的主要功能是让父类在不知道具体实现的情况下,完成自身的功能调用,而具体的实现延迟到子类来实现。 这样在设计的时候,不用去考虑具体的实现,需要某个对象,把它通过工厂方法返回就好了,在使用这些对象实现功能的时候还是通过接口来操作,这非常类似于IoC/DI的思想,这个在后面给大家稍详细点介绍一下。(2)实现成抽象类
seaizon
·
2010-09-07 19:00
设计模式
数据结构
Blog
IOC
研磨设计模式
之工厂方法模式-2
2 解决方案2.1 工厂方法模式来解决 用来解决上述问题的一个合理的解决方案就是工厂方法模式。那么什么是工厂方法模式呢?(1)工厂方法模式定义 定义一个用于创建对象的接口,让子类决定实例化哪一个类,FactoryMethod使一个类的实例化延迟到其子类。 (2)应用工厂方法模式来解决的思路 仔细分析上面的问题,事实上在实现导出数据的业务功能对象里面,根本就不知道
seaizon
·
2010-09-07 18:00
设计模式
数据结构
编程
Blog
研磨设计模式
之桥接模式-4
3.4 广义桥接-Java中无处不桥接 使用Java编写程序,一个很重要的原则就是“面向接口编程”,说得准确点应该是“面向抽象编程”,由于在Java开发中,更多的使用接口而非抽象类,因此通常就说成“面向接口编程”了。 接口把具体的实现和使用接口的客户程序分离开来,从而使得具体的实现和使用接口的客户程序可以分别扩展,而不会相互影响。使用接口的程序结构如图12所示:
chjavach
·
2010-09-06 07:00
设计模式
数据结构
编程
算法
idea
研磨设计模式
之工厂方法模式-1
做Java一晃就十年了,最近手痒痒,也决定跟随一下潮流,整个博客,写点东西,就算对自己的知识进行一个梳理和总结,也跟朋友们交流交流,希望能坚持下去。 先写写设计模式方面的内容吧,就是GoF的23个模式,先从大家最熟悉的工厂方法模式开始,这个最简单,明白的人多,看看是否能写出点跟别人不一样的东西,欢迎大家来热烈讨论,提出建议或意见,并进行批评指正,一概虚心接受,在此先谢过了! 另外,大家也可
seaizon
·
2010-09-03 18:00
设计模式
数据结构
框架
网络应用
企业应用
研磨设计模式
之策略模式-6
3.4 策略模式结合模板方法模式 在实际应用策略模式的过程中,经常会出现这样一种情况,就是发现这一系列算法的实现上存在公共功能,甚至这一系列算法的实现步骤都是一样的,只是在某些局部步骤上有所不同,这个时候,就需要对策略模式进行些许的变化使用了。 对于一系列算法的实现上存在公共功能的情况,策略模式可以有如下三种实现方式:一个是在上下文当中实现公共功能,让所有具体的策略算法回调
seaizon
·
2010-09-02 19:00
设计模式
AOP
数据结构
编程
算法
研磨设计模式
之策略模式-5
接策略模式-4,其实是讲的一个主题,写在一个里面超长了,只好分成了两个,请见谅! 3:扩展示例,实现方式一 经过上面的测试可以看出,通过使用策略模式,已经实现好了两种支付方式了。如果现在要增加一种支付方式,要求能支付到银行卡,该怎么扩展最简单呢? 应该新增加一种支付到银行卡的策略实现,然后通过继承来扩展支付上下文,在里面添加新的支付方式需要的新的数据,比如银行卡账户,然
seaizon
·
2010-09-02 18:00
设计模式
算法
Blog
研磨设计模式
之策略模式-4
3.3 Context和Strategy的关系 在策略模式中,通常是上下文使用具体的策略实现对象,反过来,策略实现对象也可以从上下文获取所需要的数据,因此可以将上下文当参数传递给策略实现对象,这种情况下上下文和策略实现对象是紧密耦合的。 &nb
seaizon
·
2010-09-02 18:00
设计模式
算法
Blog
研磨设计模式
之策略模式-3
3 模式讲解3.1 认识策略模式(1)策略模式的功能 策略模式的功能是把具体的算法实现,从具体的业务处理里面独立出来,把它们实现成为单独的算法类,从而形成一系列的算法,并让这些算法可以相互替换。 策略模式的重心不是如何来实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活、具有更好的维护性和扩展性。(2)策略模式和if-else语句 看了前面的示例,很多朋
seaizon
·
2010-09-02 17:00
设计模式
数据结构
算法
制造
Blog
研磨设计模式
之策略模式-2
2 解决方案2.1 策略模式来解决 用来解决上述问题的一个合理的解决方案就是策略模式。那么什么是策略模式呢?(1)策略模式定义 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。(2)应用策略模式来解决的思路 仔细分析上面的问题,先来把它抽象一下,各种计算报价的计算方式就好比是具体的算法,而使用这些计算方式
seaizon
·
2010-09-02 17:00
设计模式
数据结构
算法
Blog
研磨设计模式
之策略模式-1
首先感谢众多朋友的支持、评论和鼓励,只有多多努力,写点好的博文来回报大家的好意! 接下来想写写另外一个虽然较简单,但是使用很频繁的模式——策略模式 策略模式(Strategy) 1 场景问题 1.1 报价管理 向客户报价,对于销售部门的人来讲,这是一个非
seaizon
·
2010-09-02 17:00
设计模式
算法
Blog
研磨设计模式
之命令模式-6
3.7 命令模式的优缺点 更松散的耦合 命令模式使得发起命令的对象——客户端,和具体实现命令的对象——接收者对象完全解耦,也就是说发起命令的对象,完全不知道具体实现对象是谁,也不知道如何实现。 更动态的控制 命令模式把请求封装起来,可以动态对它进行参数化、队列化和日志化等操作,从而使得系
seaizon
·
2010-09-02 16:00
设计模式
算法
Blog
配置管理
研磨设计模式
之命令模式-5
3.5 队列请求 所谓队列请求,就是对命令对象进行排队,组成工作队列,然后依次取出命令对象来执行。多用多线程或者线程池来进行命令队列的处理,当然也可以不用多线程,就是一个线程,一个命令一个命令的循环处理,就是慢点。 继续宏命令的例子,其实在后厨,会收到很多很多的菜单,一般是按照菜单传递到后厨的先后顺序来进行处理,对每张菜单,假定也是按照菜品的先后顺序进行制作,那么在后厨就自
seaizon
·
2010-09-02 16:00
设计模式
多线程
thread
qq
Blog
研磨设计模式
之命令模式-4
3.4 宏命令 什么是宏命令呢?简单点说就是包含多个命令的命令,是一个命令的组合。举个例子来说吧,设想一下你去饭店吃饭的过程: (1)你走进一家饭店,找到座位坐下 (2)服务员走过来,递给你菜谱 (3)你开始点菜,服务员开始记录菜单,菜单是三联的,点菜完毕,服务员就会把菜单分成三份,一份给后厨,一份给收银台,一份保留备查。 (4)点完菜,
seaizon
·
2010-08-31 19:00
设计模式
研磨设计模式
之命令模式-3
3.3 可撤销的操作 可撤销操作的意思就是:放弃该操作,回到未执行该操作前的状态 。这个功能是一个非常重要的功能,几乎所有GUI应用里面都有撤消操作的功能。GUI的菜单是命令模式最典型的应用之一,所以你总是能在菜单上找到撤销这样的菜单项。
seaizon
·
2010-08-30 22:00
设计模式
Blog
研磨设计模式
之命令模式-2
3 模式讲解3.1 认识命令模式(1)命令模式的关键 命令模式的关键之处就是把请求封装成为对象,也就是命令对象,并定义了统一的执行操作的接口,这个命令对象可以被存储、转发、记录、处理、撤销等,整个命令模式都是围绕这个对象在进行。(2)命令模式的组装和调用 在命令模式中经常会有一个命令的组装者,用它来维护命令的“虚”实现和真实实现之间的关系。如果是超级智能的命令,也就是说命令
seaizon
·
2010-08-30 21:00
设计模式
Blog
研磨设计模式
之命令模式-1
命令模式也是开发中常见的一个模式,也不是太难,比较简单,下面来详细的写一下命令模式。 命令模式(Command)1 场景问题 1.1 如何开机 估计有些朋友看到这个标题会非常奇怪,电脑装配好了,如何开机?不就是按下启动按钮就可以了吗?难道还有什么玄机不成。 对于使用电脑的客户——就是我们来说,开机确实很简单,按下启动按钮,然后耐心等待就可以了。但是当我们按下启动按钮过后呢
seaizon
·
2010-08-30 18:00
设计模式
数据结构
工作
软件测试
研磨设计模式
之桥接模式-3
3 模式讲解3.1 认识桥接模式(1)什么是桥接 在桥接模式里面,不太好理解的就是桥接的概念,什么是桥接?为何需要桥接?如何桥接?把这些问题搞清楚了,也就基本明白桥接的含义了。 一个一个来,先看什么是桥接?所谓桥接,通俗点说就是在不同的东西之间搭一个桥,让他们能够连接起来,可以相互通讯和使用。那么在桥接模式中到底是给什么东西来搭桥呢?就是为被分离了的抽象部分和实现部分来搭
chjavach
·
2010-08-30 08:00
设计模式
数据结构
算法
jdbc
idea
研磨设计模式
之单例模式-4
3.8 在Java中一种更好的单例实现方式 根据上面的分析,常见的两种单例实现方式都存在小小的缺陷,那么有没有一种方案,既能够实现延迟加载,又能够实现线程安全呢? 还真有高人想到这样的解决方案了,这个解决方案被称为
seaizon
·
2010-08-26 22:00
设计模式
jvm
多线程
算法
虚拟机
研磨设计模式
之单例模式-3
3.3 延迟加载的思想 单例模式的懒汉式实现方式体现了延迟加载的思想,什么是延迟加载呢? 通俗点说,就是一开始不要加载资源或者数据,一直等,等到马上就要使用这个资源或者数据了,躲不过去了才加载,所以也称LazyLoad,不是懒惰啊,是“延迟加载”,这在实际开发中是一种很常见的思想,尽可能的节约资源。 体现在什么地方呢?看如下代码:3.4 缓存的思想
seaizon
·
2010-08-26 22:00
设计模式
jvm
多线程
虚拟机
框架
研磨设计模式
之单例模式-2
3 模式讲解3.1 认识单例模式(1)单例模式的功能 单例模式的功能是用来保证这个类在运行期间只会被创建一个类实例,另外单例模式还提供了一个全局唯一访问这个类实例的访问点,就是那个getInstance的方法。不管采用懒汉式还是饿汉式的实现方式,这个全局访问点是一样的。 对于单例模式而言,不管采用何种实现方式,它都是只关心类实例的创建问题,并不关心具体的业务功能。(2)单例
seaizon
·
2010-08-26 22:00
设计模式
虚拟机
Blog
研磨设计模式
之单例模式-1
单例模式(Singleton) 1 场景问题1.1 读取配置文件的内容 考虑这样一个应用,读取配置文件的内容。 很多应用项目,都有与应用相关的配置文件,这些配置文件多是由项目开发人员自定义的,在里面定义一些应用需要的参数数据。当然在实际的项目中,这种配置文件多采用xml格式的。也有采用properties格式的,毕竟使用Java来读取properties格式的配置文件比较简
seaizon
·
2010-08-26 22:00
设计模式
数据结构
Blog
研磨设计模式
之桥接模式-2
2 解决方案2.1 桥接模式来解决 用来解决上述问题的一个合理的解决方案,就是使用桥接模式。那么什么是桥接模式呢?(1)桥接模式定义 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 (2)应用桥接模式来解决的思路 仔细分析上面的示例,根据示例的功能要求,示例的变化具有两个纬度,一个纬度是抽象的消息这边,包括普通消息、加急消息和特急消息,这几个抽象的消息
seaizon
·
2010-08-26 18:00
设计模式
编程
研磨设计模式
之桥接模式-1
来写一个大家既陌生又熟悉的设计模式,也是非常实用的一个设计模式,那就是桥接模式。 说陌生是很多朋友并不熟悉这个设计模式,说熟悉是很多人经常见到或者是下意识的用到这个设计模式,只是不知道罢了。桥接模式是非常实用的一个模式,下面就来写写它。 桥接模式(Bridge)1 场景问题1.1 发送提示消息 考虑这样一个实际的业务功能:发送提示消息。基本上所有带业务流程处理的系统都会有这样
seaizon
·
2010-08-26 18:00
设计模式
数据结构
工作
Blog
研磨设计模式
之桥接模式-2
2 解决方案2.1 桥接模式来解决 用来解决上述问题的一个合理的解决方案,就是使用桥接模式。那么什么是桥接模式呢?(1)桥接模式定义 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 (2)应用桥接模式来解决的思路 仔细分析上面的示例,根据示例的功能要求,示例的变化具有两个纬度,一个纬度是抽象的消息这边,包括普通消息、加急消息和特急消息,这几个抽象的消息
chjavach
·
2010-08-23 07:00
设计模式
数据结构
敏捷开发
mobile
idea
研磨设计模式
之桥接模式-1
来写一个大家既陌生又熟悉的设计模式,也是非常实用的一个设计模式,那就是桥接模式。 说陌生是很多朋友并不熟悉这个设计模式,说熟悉是很多人经常见到或者是下意识的用到这个设计模式,只是不知道罢了。桥接模式是非常实用的一个模式,下面就来写写它。 桥接模式(Bridge)1 场景问题1.1 发送提示消息 考虑这样一个实际的业务功能:发送提示消息。基本上所有带业务流程处理的
chjavach
·
2010-08-16 07:00
eclipse
设计模式
数据结构
面试
idea
研磨设计模式
之单例模式-4
3.8 在Java中一种更好的单例实现方式 根据上面的分析,常见的两种单例实现方式都存在小小的缺陷,那么有没有一种方案,既能够实现延迟加载,又能够实现线程安全呢? 还真有高人想到这样的解决方案了,这个解决方案被称为L
chjavach
·
2010-08-09 07:00
设计模式
jvm
多线程
算法
idea
研磨设计模式
之单例模式-3
3.3 延迟加载的思想 单例模式的懒汉式实现方式体现了延迟加载的思想,什么是延迟加载呢? 通俗点说,就是一开始不要加载资源或者数据,一直等,等到马上就要使用这个资源或者数据了,躲不过去了才加载,所以也称LazyLoad,不是懒惰啊,是“延迟加载”,这在实际开发中是一种很常见的思想,尽可能的节约资源。 体现在什么地方呢?看如下代码: 3.4 缓存的思想
chjavach
·
2010-08-02 07:00
设计模式
jvm
多线程
虚拟机
idea
研磨设计模式
之单例模式-2
3 模式讲解3.1 认识单例模式(1)单例模式的功能 单例模式的功能是用来保证这个类在运行期间只会被创建一个类实例,另外单例模式还提供了一个全局唯一访问这个类实例的访问点,就是那个getInstance的方法。不管采用懒汉式还是饿汉式的实现方式,这个全局访问点是一样的。 对于单例模式而言,不管采用何种实现方式,它都是只关心类实例的创建问题,并不关心具体的业务功能。(2)单例
chjavach
·
2010-07-29 07:00
设计模式
jvm
多线程
虚拟机
研磨设计模式
之单例模式-1
看到很多朋友在写单例,也来凑个热闹,虽然很简单,但是也有很多知识点在单例里面,看看是否能写出点不一样来。 单例模式(Singleton) 1 场景问题1.1 读取配置文件的内容 考虑这样一个应用,读取配置文件的内容。 很多应用项目,都有与应用相关的配置文件,这些配置文件多是由项目开发人员自定义的,在里面定义一些应用需要的参数数据。当然在实际的项目中,这种配置文件多采用
chjavach
·
2010-07-26 08:00
设计模式
多线程
数据结构
IE
idea
研磨设计模式
之命令模式-6
3.7 命令模式的优缺点 更松散的耦合 命令模式使得发起命令的对象——客户端,和具体实现命令的对象——接收者对象完全解耦,也就是说发起命令的对象,完全不知道具体实现对象是谁,也不知道如何实现。 更动态的控制 命令模式把请求封装起来,可以动态对它进行参数化、队
chjavach
·
2010-07-23 07:00
设计模式
算法
配置管理
idea
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他