Java常用设计模式的使用场景
来源:互联网 发布:坚持做某件事 知乎 编辑:程序博客网 时间:2024/04/29 10:48
单例设计模式
单例设计模式就是保证一个类中,有且只有一个实例存在并提供一个访问点供全局访问,该实例可以被所有的程序来访问。
一般在这种情况下用:
- 当要用一个类时,又要用该类中的一个实例;
- new 来创建实例时会给程序造成资源的浪费,而且实例越多也不好控制。
- 不同的线程调用时,可能会引起不同步的现象。
实际开发中用到单例模式的情况:
- 数据库连接池
- Windows的Task Manager(任务管理器),打不开第二个任务管理器
- 大部分的音乐播放器
- 网站的计数器
- windows的Recycle Bin(回收站)也是典型的单例应用。在整个系统运行过程中,回收站一直维护着仅有的一个实例。
工厂设计模式
首先,工厂方法模式是new一个对象的替代品,所以在所有需要生成对象的地方都可以使用,但是需要慎重地考虑是否要增加一个工厂类进行管理,增加代码的复杂度。其次,需要灵活的、可扩展的框架时,可以考虑采用工厂方法模式。万物皆对象,那万物也就皆产品类,例如需要设计一个连接邮件服务器的框架,有三种网络协议可供选择:POP3、IMAP、HTTP,我们就可以把这三种连接方法作为产品类,定义一个接口如IConnectMail,然后定义对邮件的操作方法,三个具体的产品类(也就是连接方式)进行不同的实现,再定义一个工厂方法,按照不同的传入条件,选择不同的连接方式。如此设计,可以做到完美的扩展,如某些邮件服务器提供了WebService接口,很好,我们只要增加一个产品类就可以了。再次,工厂方法模式可以用在异构项目中,例如通过WebService与一个非Java的项目交互,虽然WebService号称是可以做到异构系统的同构化,但是在实际的开发中,还是会碰到很多问题,如类型问题、WSDL文件的支持问题,等等,从WSDL中产生的对象都认为是一个产品,然后由一个具体的工厂类进行管理,减少与外围系统的耦合。最后,可以使用在测试驱动开发的框架下,例如,测试一个类A,就需要把与类A有关联关系的类B也同时产生出来,我们可以使用工厂方法模式把类B虚拟出来,避免类A与类B的耦合。目前由于JMock和EasyMock的诞生,该使用场景已经弱化了,读者可以在遇到此种情况时直接考虑使用JMock或EasyMock。
代理设计模式
这里有一个很厉害的类比。。我就不粘过来了
适配器模式
- 电源转换器的类比
- 和尚的例子
0 0
- Java常用设计模式的使用场景
- Java常用设计模式与使用场景
- 常用的设计模式场景
- 常用的8种设计模式使用场景,浅显易懂
- 常用设计模式的应用场景
- 常用设计模式的应用场景
- 一些常用设计模式的应用场景
- 常用设计模式的应用场景
- 常用设计模式的应用场景
- 常用设计模式的应用场景
- 常用设计模式的应用场景
- java 单例设计模式使用场景
- 使用工厂设计模式的场景
- 使用工厂设计模式的场景
- 设计模式之常用场景
- java设计模式的应用场景
- JAVA设计模式的应用场景
- Java设计模式的应用场景
- Swift 界面
- Git学习笔记
- eclipse 项目中 怎么重新编译整个工程?
- 杨小白信箱
- okvis安装笔记之网址连接
- Java常用设计模式的使用场景
- 数据结构 二叉树的创建 关于二级指针的问题
- CIFAR-10模型训练与可视化
- 使用LinkedList实现队列
- 从零开始学习Android开发-Android概览
- 判断一个数是否是2的整数次方
- server2008 r2安装不上mysql odbc
- shell中awk详解 (模式提取)
- Qt4.7编译mysql5.5