写点什么

设计模式

用户头像
小黄鱼
关注
发布于: 2020 年 11 月 08 日
设计模式

设计模式

定义

设计模式中的每一种模式都对开发中的一些问题提出解决方案,这些问题在平时开发的过程中会不断地遇到。它是一种能够重复使用的解决方案,是前人积累的丰富的经验。

设计模式可以通过四个部分对它进行描述,模式的名称、模式的试用场景、模式针对该场景的解决方案,该设计模式有哪些优点和缺点,主要是指该设计模式对系统的弹性、扩展性和可移植性的影响。

分类

从功能区分:

创建模式(Creational Patterns)

对类的实例化过程的抽象。包含有单例模式、工厂方法模式、原型模式、抽象工厂模式、建造者模式。

结构模式(Structural Patterns)

把类或者对象结合在一起形成更大的结构。包含有桥接模式、享元模式、代理模式、装饰器模式、组合模式、适配器模式、外观模式。

行为模式(Behavioral Patterns)

对在不同的对象之间划分责任和算法的抽象化。包含有:策略模式、模板方法模式、职责链模式、中介模式、命令模式、解释器模式、访问者模式、观察者模式、状态模式、备忘录模式、迭代器模式。

从方式分:

类模式

以继承的方式实现的模式,是静态的。

对象模式

以组合的方式实现的模式,是动态的。

简单工厂模式

创建一个工厂类,根据传入的不同的参数,能够创建并且返回不同的类,这些类一般继承自同一个类或者实现自同一个接口。

适用于创建对象较少,实现逻辑不复杂的场景,客户端不需要了解创建对象的实现细节。

单例模式

单例对象的类只能够允许一个对象存在。

适用于需要频繁创建和销毁对象的场景,能够有效减少资源的消耗,当多个用户使用同一个实例的时候,方便对该实例进行统一管理。一般实现有两种方式:饿汉模式和懒汉模式。

单例模式中的成员变量可能是多线程重用的,使用会产生意想不到的结果,尽量将单例设计成无状态的对象(只提供服务,不保存状态)。

适配器模式

将一个类的接口转换成期望使用的接口,可以让不兼容的类一起进行工作。

适用于:系统中需要使用现有的类,但是现有的类的接口无法满足需求,需要对该类的接口进行适配,例如 JDBC Driver,他是对具体的数据库的适配。

模板方法模式

定义一个算法的骨架,由子类对该算法的骨架进行扩展实现,它是通过继承的方法来实现扩展。

适用于:需要定义公共的算法骨架,对一些通用的公共行为进行抽取,把可变的行为留给子类进行实现。

组合模式

将对象组合成树形结构以表示”部分-整体“的层次结构,用户对单个对象和组合对象的使用具有一致性。

是一种对象的结合模式。

策略模式

策略模式是指对象在不同的场景中使用不同的算法,有不同的行为。

策略模式是通过组合的方法来实现扩展的。

装饰器模式

装饰器和适配器区别:两者都可以笼统的称为”包装器“,区别在于适配器是转换成另一个接口,装饰器则是保持接口不变。

spring 中涉及的设计模式

spring 中涉及的设计模式有依赖注入和控制反转、MVC


用户头像

小黄鱼

关注

码农 2018.12.27 加入

还未添加个人简介

评论

发布
暂无评论
设计模式