设计模式学习

文章介绍了设计模式中的单例模式(饿汉式和懒汉式)、工厂模式、代理模式(静态和动态,包括CGLIB)以及观察者和装饰者模式。单例模式确保类只有一个实例,工厂模式提供了一种创建对象的方式,代理模式用于在调用方法前后添加额外操作。观察者模式中,被观察者通知所有观察者关于状态变化。装饰者模式允许动态地给对象添加新的行为。CGLIB是Java的动态代理库,适用于无需频繁创建对象的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.单例模式

单例模式就是保证一个类只有一个对象。

(1)饿汉——类定义的时候就实例化了。

用的时候取就行了

(2)懒汉——等到第一次用的时候才去实例化

用的时候 有就直接用  没有就创建。

2.工厂模式

工厂模式就是把类都放在一起。

通过工厂去使用类。有点像spring 。你需要使用什么类都可以通过工厂去创建。spring 优秀的地方在于你需要使用什么类spring都会给你。主动与被动的关系吧。

3.代理模式

(1)静态代理

代理类直接调用方法 ,可以再调用方法前后做一下操作。

(2)动态代理

将代理类与被代理的类解耦,  动态选择 代理类 与 被代理的类

(3)CGLIB代理

与动态代理类似 都是将代理类与被代理的类解耦

不过 JDK实现动态代理需要实现类通过接口定义业务方法 

CGLIB代理是创建一个子类

CGLIB创建的动态代理对象比JDK创建的动态代理对象的性能更高,但是CGLIB创建代理对象时所花费的时间却比JDK多得多。所以对于单例的对象,因为无需频繁创建对象,用CGLIB合适,反之使用JDK方式要更为合适一些。同时由于CGLib由于是采用动态创建子类的方法,对于final修饰的方法无法进行代理

4.观察者模式

被观察者 维护一个观察者的列表。 发生动作是 告知列表中的每一个人。

直接看别人的代码就能看懂

面试——常用的设计模式_斯维特哈特的博客-优快云博客

5.装饰着模式

这个也比较简单了。 就是每个类都有一个 父类的对象(其他子类) ,执行方法是 先执行一下 自己成员的这个方法。有点递归的感觉。同样看代码吧。

面试——常用的设计模式_斯维特哈特的博客-优快云博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值