博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
head first设计模式概述
阅读量:5787 次
发布时间:2019-06-18

本文共 990 字,大约阅读时间需要 3 分钟。

hot3.png

一、原则

封装变化

多用组合、少用继承

针对接口编程,不针对实现编程

为交互对象之间的松耦合设计而努力

类应该对扩展开发,对修改关闭

依赖抽象,不要依赖具体类

只和朋友交谈

别找我,我会找你

类应该只有一个改变的理由

二、设计模式

1、策略模式

封装可以互换的行为,并使用委托来决定要使用哪一个。

2、单件模式

确保只有一个对象呗创建

3、工厂模式、抽象工厂

由子类决定要创建的具体类是哪一个。如果创建对象的家族,使用抽象工厂

4、装饰者模式

包装一个对象,以提供新的行为

5、适配器模式

封装对象,并提供不同的接口

6、观察者模式

让对象能够在状态改变时被通知

7、命令模式

封装请求成为对象

8、模板方法

由子类决定如何实现一个算法中的步骤

9、迭代器模式、组合模式

在对象集合之中游走,而不暴露集合的实现。客户用一致的方式处理对象集合和单个对象,对象对客户透明。

10、状态模式

封装了基于状态的行为,并使用委托在行为之间切换。

11、代理模式

包装封装对象,以控制对此对象的访问。

12、外观模式

简化一群类的接口访问。

13、桥接模式、生成器、责任链、蝇量模式、解释器模式、中介者、备忘录、原型、访问者。

桥接模式:用于把抽象和实现解耦,实现二者独立变化。抽象里面使用接口对象,抽象子类和接口对象独立变化。

生成器:封装一个产品的构造过程。

责任链:为请求对象创造一个接收对象链,接收链的每个对象依次处理请求,直到请求被处理。

蝇量模式:享元模式,用于减少创建对象的数量,以减少内存占用和提高性能。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。

解释器模式:提供了评估语言的语法或表达式的方式,这种模式被用在 SQL 解析、符号处理引擎等。

中介者:用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。

备忘录:保存一个对象的某个状态,以便在适当的时候恢复对象。

原型:是用于创建重复的对象,同时又能保证性能。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。

访问者:使用了一个访问者类,它改变了元素类的执行算法,通过这种方式,元素的执行算法可以随着访问者改变而改变。

 

转载于:https://my.oschina.net/emperror/blog/875801

你可能感兴趣的文章
RabbitMQ-镜像队列配置相关
查看>>
6.java 代码块
查看>>
7个开放式的前端面试题
查看>>
Andriod监听支付宝收款实现个人支付宝支付接口!附安卓App
查看>>
CAP 定理 —— 可用性 (Availability) 和分区容忍 (Partition tolerance)
查看>>
JavaScript 代码简洁之道
查看>>
Centos7安装mongodb
查看>>
Vue和React组件之间的传值方式
查看>>
fastjson
查看>>
论搜索方法,低效的你简直在浪费生命(二)
查看>>
Java 反射
查看>>
一篇文章弄懂 JavaScript 中的 import
查看>>
Python数据可视化的四种简易方法
查看>>
微信小程序获得微信头像和昵称
查看>>
kafka之旅总览
查看>>
修复 github 项目的语言属性
查看>>
面试分享
查看>>
网络协议 3 - 从物理层到 MAC 层
查看>>
原生js替换jQuery各种方法-中文版
查看>>
【开发经验】在Flutter中使用dart的单例模式
查看>>