十、设计模式(-)常用设计模式--以及23种全解析

一、23种设计模式

设计模式一共可以分为23种,3大类:

创建型

Factory Method(工厂方法)https://blog.csdn.net/M_azed/article/details/91978020
Abstract Factory(抽象工厂)https://blog.csdn.net/M_azed/article/details/91978020
Builder(建造者)https://blog.csdn.net/M_azed/article/details/91979735
Prototype(原型)https://blog.csdn.net/M_azed/article/details/91980766
Singleton(单例)https://blog.csdn.net/M_azed/article/details/91981881

结构型

Adapter Class/Object(适配器)https://blog.csdn.net/M_azed/article/details/91982760
Bridge(桥接)https://blog.csdn.net/M_azed/article/details/91984889
Composite(组合)https://blog.csdn.net/M_azed/article/details/91985933
Decorator(装饰)https://blog.csdn.net/M_azed/article/details/91987105
Facade(外观)https://blog.csdn.net/M_azed/article/details/91987883
Flyweight(享元)https://blog.csdn.net/M_azed/article/details/91988382
Proxy(代理)https://blog.csdn.net/M_azed/article/details/91989588

行为型

Interpreter(解释器)https://blog.csdn.net/M_azed/article/details/91992494
Template Method(模板方法)https://blog.csdn.net/M_azed/article/details/91993235
Chain of Responsibility(责任链)https://blog.csdn.net/M_azed/article/details/91993531
Command(命令)https://blog.csdn.net/M_azed/article/details/91993746
Iterator(迭代器)https://blog.csdn.net/M_azed/article/details/91995059
Mediator(中介者)https://blog.csdn.net/M_azed/article/details/91995863
Memento(备忘录)https://blog.csdn.net/M_azed/article/details/91996349
Observer(观察者)https://blog.csdn.net/M_azed/article/details/91997357
State(状态)https://blog.csdn.net/M_azed/article/details/91998444
Strategy(策略)https://blog.csdn.net/M_azed/article/details/91998899
Visitor(访问者)https://blog.csdn.net/M_azed/article/details/91999205

二、常用设计模式

由于设计模式比较多, 作为初学者来说不容易理解, 更不容易记忆, 所以我认为应该先从常用简单的入手, 结合JDK中或spring等常用框架中的实际应用来理解和记忆, 这是一个大工程, 需要循序渐进, 死记硬背是没有任何好处的。

1.单例模式

单例设计指的是一个类只允许产生一个实例化对象, 节省内存空间, 避免频繁的创建销毁对象, 提高性能

实际使用中:

数据库的连接工具类: 创建时消耗资源多, 频繁使用, 全局只需提供统一访问入口

2.代理模式

为其他对象提供一种代理以控制对这个对象的访问。

实际使用中:

spring 的AOP就是基于代理模式实现的

3.工厂

工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。

实际使用中:

BeanFactory以及ApplicationContext创建中都用到了

4.原型模式

原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

实际使用中:

编程过程中, 我们使用到clone()方法来克隆对象, 实际上就是原型模式的实现

5.装饰模式

装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。

实际使用中:

由于Java I/O库需要很多性能的各种组合,如果这些性能都是用继承的方法实现的,那么每一种组合都需要一个类,这样就会造成大量性能重复的类出现。而如果采用装饰模式,那么类的数目就会大大减少,性能的重复也可以减至最少。因此装饰模式是Java I/O库的基本模式。

6.适配器模式

适配器模式:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

实际使用中:

java.util.Arrays#asList()
java.io.InputStreamReader(InputStream)
java.io.OutputStreamWriter(OutputStream)

7.观察者模式

定义对象见的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。

实际使用中:

java.util.EventListener
javax.servlet.http.HttpSessionBindingListener
javax.servlet.http.HttpSessionAttributeListener
javax.faces.event.PhaseListener

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值