设为首页 加入收藏

TOP

设计模式在项目中的应用
2015-07-20 12:52:46 来源: 作者: 【 】 浏览:42
Tags:设计模式 项目 应用

简单工厂设计模式在项目中应用


项目使用场景:根据不同的厂家,有不同的报表打印形式,而对于报表的打印他们有公共的部分,打印报表头、打印底部、和打印中间部分。


我们可以使用简单工厂模式,抽象出打印报表的接口,不同的厂家实现不同的打印接口。



单例模式在项目中应用


场景1:在DOM读取配置文件的时候,因为经常被用到这个类,我们可以设置一个全局类,不用每次都new那么多的类,节省资源消耗。


场景2:在spring的IOC依赖注入的时候,默认的是采用单例模式,例如controller层中一个类通过注入方式使用service层的一个类,而service这个类是全局变量,spring就是通过单例模式来实现的,当然我们可以通过配置spring的springMVC.xml文件来修改(prototype)。


单例模式作用:保证一个类仅有一个实例,并提供一个访问它的全局访问点。


如下图所示:



/**?
?* @ClassName: Singleton_Simple?
?* @Description: 单例模式——饿汉模式?
?* @author summer?
?* @date 2015-7-14?
?*?
?*/?
public class Singleton_Simple {?
? ? ?
? ? private static final Singleton_Simple simple = new Singleton_Simple();?
? ? ?
? ? private Singleton_Simple(){}?
? ? ?
? ? public static Singleton_Simple getInstance(){?
? ? ? ? return simple;?
? ? }?
?
}


当然对于读取配置文件这个类我们可以作为静态类来写,那为什么还要使用单例模式呢?spring工厂中创建的bean为singleton模式和prototype格式,为什么没有使用静态类的形式?或者可以选择非静态类的静态方法?


1、静态类是在JVM加载的时候就占用内存的,而单例模式,可以在使用的时候再进行加载。也就是单例可以延迟初始化。


2、单例可以继承类,可以实现接口,而静态类不能。


3、单例类可以被集成,他的方法可以被覆写。


4、单例类可以被用来多台。


5、而针对非静态类的静态方法,如果一个类不需要扩展的话可以用这样的方式,用单例也可以,但是需要扩展的类,最好是使用单例。


代理模式在项目中的应用


应用场景:spring AOP的核心就是代理,通过代理模式的实现来实现解耦。


代理模式(proxy):为其他对象提供一种代理以控制对这个对象的访问。


JDK代理模式如下所示:


设计模式在项目中的应用


外观模式在项目中的应用


应用场景:在界面和业务逻辑层中抽取出一层,controller层调用facade层,facade层调用service层。


外观模式(facade):为子系统中一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java Robot 类模拟键盘按键和鼠标.. 下一篇使用Broadcast实现Android组件之..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: