文档章节

head first设计模式概述

比雷
 比雷
发布于 2017/04/09 22:57
字数 811
阅读 8
收藏 1

一、原则

封装变化

多用组合、少用继承

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

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

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

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

只和朋友交谈

别找我,我会找你

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

二、设计模式

1、策略模式

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

2、单件模式

确保只有一个对象呗创建

3、工厂模式、抽象工厂

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

4、装饰者模式

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

5、适配器模式

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

6、观察者模式

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

7、命令模式

封装请求成为对象

8、模板方法

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

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

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

10、状态模式

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

11、代理模式

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

12、外观模式

简化一群类的接口访问。

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

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

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

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

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

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

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

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

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

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

 

© 著作权归作者所有

共有 人打赏支持
上一篇: java虚拟机相关
下一篇: java基础——IO
比雷
粉丝 0
博文 10
码字总数 6579
作品 0
成都
程序员
私信 提问
JAVA基础再回首(二十六)——面向对象思想设计原则、设计模式、简单工厂模式、工厂方法模式、单例设计模式之饿汉式和懒汉式、Runtime类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52717096 JAVA基础再回首(二十六)——面向对象思想设计原则、设计模式、简单工厂模...

Aduroidpc
2016/10/01
0
0
设计模式之观察者模式(行为型)

模式定义 观察者模式(Observer Pattern):观察者模式定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖的对象皆得到通知并且被自动更新。不过观察者只能知道目标...

Javahih
07/22
0
0
Head First Design Pattern 读书笔记(1) 策略模式

Head First Design Pattern 读书笔记(1) Strategy Pattern 策略模式 这几天为了锻炼看英语文档的能力,开着有道硬着头皮看 《Head First Desgin Pattern》的原版书,顺便做下笔记,把里面提...

Tek_Eternal
2015/01/02
0
0
《PHP设计模式大全》系列分享专栏

《PHP设计模式大全》已整理成PDF文档,点击可直接下载至本地查阅 https://www.webfalse.com/read/201739.html 文章 php设计模式介绍之编程惯用法第1/3页 php设计模式介绍之值对象模式第1/5页...

kaixin_code
11/06
0
0
设计模式(Swift) - 3.观察者模式、建造者模式

上一篇 设计模式(Swift) - 2.单例模式、备忘录模式和策略模式中讲了三种常见的设计模式. 单例模式: 限制了类的实例化,一个类只能实例化一个对象,所有对单例对象的引用都是指向了同一个对象....

Dariel
07/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day152-2018-11-19-英语流利阅读-待学习

外媒看吴亦凡刷榜事件 Lala 2018-11-19 1.今日导读 近日,吴亦凡的专辑在国外陷入了刷榜风波,他的新专辑霸占了单曲榜前三名,并且前十名他占据了七席,力压美国乐坛巨星 Lady Gaga 和 A 妹,...

飞鱼说编程
28分钟前
5
0
开源 java CMS - FreeCMS2.8 微信管理 群发图文消息

项目地址:http://www.freeteam.cn/ 群发图文消息 管理员可以在这里群发图文消息 此列表只提取已审核并且带信息图片的数据! 选择需要群发的消息,点击“群发图文消息”按钮。 微信的限定: ...

freeteam
37分钟前
1
0
Beautiful Soup

定义 Python中的一个库,主要用于从网页爬取数据; 安装 pip install beautifulsoup4 四大对象 Beautiful Soup将复杂的HTML文档转换成树形结构,树中的每个节点都是Python对象,对象可归纳为...

村雨1943
48分钟前
4
0
Visual Studio 昨日发布新版本:增加实时同步编程、共同调试

多名开发者可以在同一个项目中编程,在编写代码和调试代码时只需发送一个 URL 网址,就能邀请他人参与协作,而且无需重新配置开发环境和安装任何附加包。该服务支持 Windows、Mac 与 Linux ...

linuxCool
51分钟前
5
0
发现一种不错的学习方法

这是在《软技能,代码之外的生存之道》所看到的一种学习方法,感觉这个理念不错,分享出来,共勉。 我的「十步学习法」 多年以来,我都承受着巨大的压力:快速学习新技术、新编程语言、新框架...

firepation
51分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部