设计模式归纳

文章介绍了设计模式的基本概念,强调它们是前人经验的总结。文章详细阐述了六大设计原则,包括单一职责、里氏替代等,并列举了23种具体的设计模式,如单例、工厂、代理、模板和装饰器模式等。此外,还详细讨论了单例模式的实现方式以及简单工厂和工厂方法模式的区别。代理模式的作用和实现方式,如JDK和CGLIB代理,也得到了解释。文章还提到了模板模式、观察者模式、装饰器模式和适配器模式的应用场景。
摘要由CSDN通过智能技术生成

1.设计模式是什么?:

由前人在实际工作中反复使用,总结得出的经验, 形成了一些模式。


2.6大设计原则

1.单一职责原则
2.里氏替代原则:(子类可以拓展父类, 但是不能改变父类原则)
3.依赖倒置原则(面向接口编程)
4.接口隔离原则(接口中方法尽量少)
5.迪米特法则:对其他对象保持最少了解
6.开闭原则:对拓展开放, 对修改关闭。


3.具体设计模式介绍(一共23种)

创建型模式: 工厂模式
结构型模式: 代理模式,适配器模式,装饰器模式
行为型模式:关注系统中对象间相互切换, 观察者模式, 责任链模式, 模板方法


4.单例模式:

核心是要保证一个类只有一个对象在当前容器中, 而且需要提供一个实例全局的访问方法。
实现单例的方式:
饿汉式: 创建一个对象的时候, 加载就创建, 构造方法私有化, 提供静态的获取变量的方法。
懒汉式: 在全局静态方法中做判断, 需要用到的时候才会创建。外部if判断是否为空 , 加锁。
里面再次判断一次是否为空。


简单工厂模式:

简单工厂模式又称为静态工厂模式,
在这里插入图片描述

简单工厂模式实现简单, 但是对于新产品拓展无能为力, 不修改代码没法拓展。

工厂方法模式:
为了避免简单工厂模式缺点, 不完全满足ocp, 工厂方法模式和简单工厂模式最大的不同在于,
简单工厂模式只有一个,而工厂方法模式有一组实现了相同接口的工厂类。
在这里插入图片描述


代理模式:

代理模式作用, 增强我们目标对象功能, 代目标对象去处理一些业务处理逻辑。
2.实现方式:
静态代理
jdk代理模式:目标对象必须实现相关接口,
cglib代理:目标对象不管有没有实现相关接口, 都可以使用, 用到继承类关系。


模板模式:

父类中定义了模板结构, 去子类中具体实现。


观察者模式:

本质就是对象之间的一种一对多的依赖关系,
当其中某个对象状态发生变化的时候, 其他依赖的相关对象都可以获得通知并且做出更新。
监听器事件


装饰器模式:

本质是能够动态的给一个对象增加一些额外的功能, 同时不会改变其结构。
mybatis中缓存模块。


策略模式:

定义一系列的算法, 将每个算法都封装起来,使其相互之间可以替换。


适配器模式:

是将一个类的接口变成客户端所期望的另一个接口, 从而使原本因为接口不匹配
而无法一起工作的两个类能够一起工作, 不会破坏原有的一些信息。
myBatis中的日志框架。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孙仲谋111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值