Java设计模式总结
什么是设计模式
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。通过对这些设计模式的合理使用能够是我们的系统更加的健壮。
六大设计原则
设计原则 | 简单说明 |
---|---|
单一职责 | 一个类只负责一项职责 |
里氏替换原则 | 子类可以扩展父类的功能,但不能改变父类原有的功能 |
依赖倒置原则 | 要依赖于抽象,不要依赖于具体,核心思想是==面向接口编程== |
接口隔离原则 | 建立单一接口,不要建立庞大臃肿的接口, 尽量细化接口,接口中的方法尽量少 |
迪米特法则 (最少知道原则) |
一个对象应该对其他对象保持最少的了解 |
开闭原则 | 对扩展开放,对修改关闭 |
设计模式的分类
类别 | 说明 |
---|---|
创建型模式 | 对象实例化的模式,创建型模式用于解耦对象的实例化过程。 |
结构型模式 | 把类或对象结合在一起形成一个更大的结构。 |
行为型模式 | 类和对象如何交互,及划分责任和算法。 |
设计模式的具体实现
1.创建型模式
都是用来帮助我们创建对象的!
2.结构型模式
关注对象和类的组织
|模式|地址 |
|--|:--|
| 代理模式| https://dpb-bobokaoya-sm.blog.csdn.net/article/details/86484887|
|适配模式|https://dpb-bobokaoya-sm.blog.csdn.net/article/details/87949811 |
|桥接模式|https://dpb-bobokaoya-sm.blog.csdn.net/article/details/87951434 |
|组合模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/88567000 |
|装饰模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/88214447 |
|外观模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/88569991 |
|享元模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/88586998 |
3.行为型模式
关注系统中对象之间的相互交换,研究系统在运行时对象之间的相互通信和协作,进一步明确对象的职责,共有11中模式
|模式|地址 |
|--|:--|
| 责任链模式| https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89077040|
|命令模式|https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89115420 |
|解释器模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89367802 |
|迭代器模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89077229 |
|中介者模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89077718 |
|备忘录模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89367699 |
|观察者模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/87483479 |
|状态模式|https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89345271 |
|策略模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/88222305 |
|模板方法 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/88210977 |
|访问者模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89367828 |
Java设计模式总结的更多相关文章
- java设计模式- (1)单例模式
参加校园招聘的笔试,发现公司都会考一些java设计模式,所以上网查询相关内容,总结常用的几种单例模式. 单例模式(Singleton Pattern)是 Java中最简单的设计模式之一.这种类型的设计 ...
- JAVA 设计模式 桥接模式
用途 桥接模式 (Bridge) 将抽象部分与实现部分分离,使它们都可以独立的变化. 桥接模式是一种结构式模式. 结构
- java设计模式 策略模式Strategy
本章讲述java设计模式中,策略模式相关的知识点. 1.策略模式定义 策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户.策略模式属于对象的 ...
- Java设计模式之行为型模式
行为型模式共11种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 策略模式:策略模式的决定权在用户,系统本身提供不同 ...
- Java设计模式(三) 抽象工厂模式
原创文章,同步发自作者个人博客,转载请注明出处 http://www.jasongj.com/design_pattern/abstract_factory/ 抽象工厂模式解决的问题 上文<工厂 ...
- Java设计模式(十二) 策略模式
原创文章,同步发自作者个人博客,http://www.jasongj.com/design_pattern/strategy/ 策略模式介绍 策略模式定义 策略模式(Strategy Pattern) ...
- Java设计模式(二) 工厂方法模式
本文介绍了工厂方法模式的概念,优缺点,实现方式,UML类图,并介绍了工厂方法(未)遵循的OOP原则 原创文章.同步自作者个人博客 http://www.jasongj.com/design_patte ...
- Java设计模式(一) 简单工厂模式不简单
摘要:本文介绍了简单工厂模式的概念,优缺点,实现方式,以及结合Annotation和反射的改良方案(让简单工厂模式不简单).同时介绍了简单工厂模式(未)遵循的OOP原则.最后给出了简单工厂模式在JDB ...
- Java设计模式(十三) 别人再问你设计模式,叫他看这篇文章
原创文章,转载请务注明出处 OOP三大基本特性 封装 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的属性和方法只让可信的类操作,对不可信的进行信息隐藏. 继承 继承是指这样一种能力,它可以使 ...
- JAVA 设计模式 状态模式
用途 状态模式 (State) 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 状态模式是一种行为型模式. 结构
随机推荐
- UI框架
一,框架构成:目录分别有bin,lib,page,report,test_case,(百度网盘) 1.bin>run.py 2.lib>HTMLTestRunner.py lib>l ...
- NOIP-螺旋矩阵
题目描述 一个 n 行 n 列的螺旋矩阵可由如下方法生成: 从矩阵的左上角(第 1 行第 1 列)出发,初始时向右移动:如果前方是未曾经过的格子,则继续前进,否则右转:重复上述操作直至经过矩阵中所有格 ...
- VS Code 常用插件
1.Chinese (Simplified) Language Pack for Visual Studio Code VS Code软件汉化 2.Auto Close Ta ...
- SpringAop注解实现日志的存储
一.介绍 1.AOP的作用 在OOP中,正是这种分散在各处且与对象核心功能无关的代码(横切代码)的存在,使得模块复用难度增加.AOP则将封装好的对象剖开,找出其中对多个对象产生影响的公共行为,并将其封 ...
- ssh 报error: kex protocol error: type 30 seq 1
由于近期服务器升级了openssl,在使用navicat连接数据库报 查看日志 sshd[1990]: error: kex protocol error: type 30 seq 1 [preaut ...
- 配置NFS固定端口
NFS启动时会随机启动多个端口并向RPC注册,为了设置安全组以及iptables规则,需要设置NFS固定端口.NFS服务需要开启 mountd,nfs,nlockmgr,portmapper,rquo ...
- 第二次Srum冲刺
一.项目简介 1.项目名称:云医院智能管理系统 2.项目介绍:该项目涵盖了目前医院里的一些基本需求,由于时间和技术有限,先暂时列出如下图所示的一些要实现的功能,关于实现的过程,还需在后面的学习当中不断 ...
- QEMU KVM Libvirt手册(10): KVM的各种限制
Overcommits KVM allows for both memory and disk space overcommit. However, hard errors resulting fro ...
- 【转载】CSS3 文字溶解效果
代码如下: <!DOCTYPE html> <html > <head> <meta charset="UTF-8"> <ti ...
- RabbitQM使用笔记
一:安装 and 卸载 curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.r ...