1.何为设计模式
设计模式是软件开发人员在软件开发过程中面临的一般问题的一种解决方案
使用设计模式的目的就是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 也可以说是为了简化开发而诞生的。
2.设计模式有几种
就是按照使用目的划分为的三类:
对象创建型(creational):主要用于处理对象的创建,实例化对象
结构处理型(structural):处理类或对象间的组合
行为描述型(behavioral):描述类或对象怎样进行交互和职责分配
其中:
对象创建型包括:工厂方法模式、抽象工厂模式、单例模式、生成器模式、原型模式
结构处理型包括:装饰器模式、适配器模式
行为描述型包括:观察者模式
原型模式
定义:原型模式中,先存在一个初始的原型对象,后续创建新对象时就可以基于这个原型进行复制和必要的修改,而不需要从头开始创建和初始化所有的属性,这样可以提高创建对象的效率和便捷性。
用处:它特别适用于创建对象的过程较为复杂或成本较高的情况。
对象创建型模式
工厂模式
定义:工厂方法模式强调通过定义一个抽象工厂方法,让子类决定具体创建哪种产品
用处:工厂方法模式适用于产品种类相对固定,但具体产品的创建逻辑需要灵活变化的情况;
抽象工厂模式
定义:与工厂模式相同,不同的是抽象工厂是更高层次的,关注的是一组相关产品对象(如属于同一产品族的多种不同产品)的创建
用处:是更具系统性和整体性的产品创建需求
单例模式
定义;保证一个类仅有一个实例,并提供一个访问这个唯一实例的全局访问点。只有在第一次调用时才会创建新的实例,之后再调用都返回已创建的那个实例。
用处:确保对某个资源(如数据库连接、文件系统等)的访问是全局唯一的
生成器模式
定义:主要关注复杂对象的构建过程,将构建过程与对象表示分离,以灵活地创建不同表示的对象。例如房子的设计风格
用处:侧重于对象的构建
结构处理性模式
装饰器模式
定义;使用装饰器模式,可以在不修改原始类的情况下,动态地为对象添加新的行为,提高了代码的灵活性和可扩展性。
用处:动态扩展功能
适配器模式
定义:将不兼容的接口转换为客户期望的接口,使得原本不兼容的类可以一起工作。
用处:当需要使用一个已有的类,但它的接口不符合系统的需求时。
行为描述性模式
观察者模式
定义:当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
用处:
- 界面组件和数据模型的分离,当数据模型发生变化时,界面组件可以自动更新显示。
- 事件驱动系统,例如用户界面中的按钮点击事件,多个监听器可以同时观察并响应事件。
- 消息发布/订阅系统,发布者发布消息,订阅者接收并处理消息。
- 模型-视图-控制器(MVC)架构中的模型和视图的交互。