加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

设计模式在项目中的实施

发布时间:2021-12-10 20:20:32 所属栏目:PHP教程 来源:互联网
导读:简单工厂设计模式在项目中应用 项目使用场景:根据不同的厂家,有不同的报表打印形式,而对于报表的打印他们有公共的部分,打印报表头、打印底部、和打印中间部分。 我们可以使用简单工厂模式,抽象出打印报表的接口,不同的厂家实现不同的打印接口。 单例模
简单工厂设计模式在项目中应用
 
项目使用场景:根据不同的厂家,有不同的报表打印形式,而对于报表的打印他们有公共的部分,打印报表头、打印底部、和打印中间部分。
 
我们可以使用简单工厂模式,抽象出打印报表的接口,不同的厂家实现不同的打印接口。
 
 
 
单例模式在项目中应用
 
场景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):为子系统中一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
 
 

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读