
设计模式
设计模式
-乾坤-
一名普通的研发工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java面试——设计模式——说一说你熟悉的设计模式?
常见的我们熟悉的设计模式有单例模式、工厂模式等,Spring框架中有这两种设计模式的经典使用。 一、Spring框架中的单例模式: Spring框架中默认将bean设置为单例的,可以极大地提高系统的性能 1、单例bean与原型bean的区别 单例bean: 在处理多次请求的时候在Spring 容器里只实例化出一个bean,后续的请求都公用这个对象,这个对象会保存在一个map(缓存)里面。当有请求来的时候会先从缓存(map)里查看有没有,有的话直接使用这个对象,没有的话才实例化一个新的对象。 原型bean:原创 2020-09-15 16:02:53 · 2718 阅读 · 1 评论 -
Java 单例模式(入门)
1.什么是单例模式? Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。” 单例模式就是一个类只有一个对象的实例 2.为什么要用单例模式? 某些应用场景中,有些对象有且只能有一个,如果创建多个就会出现很多问题。例如:一个操作系统中只能打开一个任务管理器,如果可以同时打开多个任务管理器就会出现问题。 3.怎么创建单例模式? 方法一:饿汉模式 ...原创 2017-11-14 20:43:13 · 252 阅读 · 0 评论 -
Java代理模式(二)
上一篇文章讲的是静态代理 car的代理类实现增加日志时间等功能 如果我们要给自行车,火车等也实现增加日志和时间的功能的话用静态代理就需要新建其他的代理类,动态代理就可以解决这个问题 动态代理:在代理类和被代理类之间怎加一个事务处理器InvocationHandler 参数:被代理对象 被代理对象得方法,方法的参数 动态代理类 Proxy 通过newProxyInstance就可以产生动态...原创 2018-02-12 18:37:37 · 165 阅读 · 0 评论 -
Java代理模式(三)
1.jdk动态代理只能代理实现了接口的类,没有实现接口的类不能实现jdk的动态代理 2.cglib是针对类来实现代理的,对指定目标类产生一个子类,通过方法拦截技术拦截所有父类方法的调用 被代理类 public class Train { public void move(){ System.out.println("开始行驶"); System.o...原创 2018-02-12 21:10:17 · 158 阅读 · 0 评论 -
Java代理模式(一)
使用代理模式可以在不改变源码的情况下来给源码增加一些额外的功能,这种模式叫做AOP面向切面编程。 1.举一个例子 买火车票可以直接去火车站也可以去火车票代售处 火车票代售处可能会提供一些额外的服务,比如收手续费,不支持退票 代理对象起到中介的作用,可以去掉功能服务或者增加额外的服务 2.代理模式可以分为 远程代理:如客户端服务器模式 虚拟代理:如图片加载消耗较大,可以用一张图片代替这张...原创 2018-02-12 16:49:21 · 173 阅读 · 0 评论 -
Java工厂模式
工厂模式概念: 实例化对象,用工厂方法代替new操作 工行模式包括工厂方法模式和抽象工厂模式 抽象工厂模式是工厂方法模式的扩展 工厂模式意图 定义一个接口来创建对象,但是让子类决定哪些类需要被实例化 工厂方法把实例化的工作推迟到子类中去实现 什么情况下适合工厂模式 有一组类似的对象需要创建 在编码的时候不能预见需要创建哪种类的实例 系统需要考虑扩展性,不依赖于产品实力如何被创建...原创 2018-02-13 10:47:22 · 320 阅读 · 2 评论