软件开发常见的一些设计模式,留着供自己研究和面试使用

简介: 说到软件开发,就不得不提到设计模式,比如大家基本上都用过什么MVC框架开发各种系统,一些好的设计模式不仅能让软件运行的更为流畅,更能让开发人员的工作效率大大提高。本文就来列举一些常用的设计模式,供大家参考收藏。

说到软件开发,就不得不提到设计模式,比如大家基本上都用过什么MVC框架开发各种系统,一些好的设计模式不仅能让软件运行的更为流畅,更能让开发人员的工作效率大大提高。本文就来列举一些常用的设计模式,供大家参考收藏。

image.gif编辑

工厂模式

这个模式学过Java编程的一定不陌生,都听说过SessionFactory。工厂模式是一个程序设计中比较常用的模式,一般来说一个对象都是通过new方法去获取自身的一个实例。工厂模式的目的在于将创建实例和使用实例过程分来,提高程序的封装性,使用对象生产对象,这样做是非常符合面向对象的思想的。

image.gif编辑

单例模式

很多时候去面试的时候,都会要求学会写这个单例。比如Java开发中Calandar这个类就是一个单例,通过getInstance()方法就可以获取这个实例,因为获取日期一个类就可以提供了。这种类有且只有一个实例,并自行实例化向整个系统提供服务。

image.gif编辑

适配器模式

这个模式运用不多,但是日常生活中的例子却比较普遍。如普通的MAC(苹果)电脑并不能直接插网线,这个时候大家通常回去买一个转换器,一边连接MAC电脑,一边连接网线,这个转换器就相当于是一个适配器。如果大家有一定的编程思考,可能已经想到了如何在程序设计中去构建一个适配器,那就是采用继承(extends)和依赖(interface),用于匹配和兼容不同的接口。

image.gif编辑

观察者模式

又被成为“模型、视图”模式,大家经常使用到的MVC框架的理念很多也是来源于观察者模式的灵感。观察者模式包含观察者和被观察者,一般视图界面作为观察者,业务层的数据作为被观察者,当数据发生变化的时候,会呼叫观察者进行数据重新绑定。因此来将各个模块之间的界限划分的比较清楚,提高了程序的可维护性。

image.gif编辑

策略模式

策略模式主要是对算法进行封装,算法相互间可以独立替换。来应对使用系统的不同客户。优点在于策略模式提供了管理相关的算法族的办法、策略模式提供了可以替换继承关系的办法、使用策略模式可以避免使用多重条件转移语句。

image.gif编辑

访问者模式

它被归纳到行为型设计。访问者模式实现了数据操作与数据结构的分离,由于这种特性,它几乎是众多设计模式中比较复杂的一种,但它的使用频率并不是很高,一般来说,不会经常使用访问者模式。

image.gif编辑

代理模式

代理这个词语,大家一听就明白。通常在一个程序中,只有程序自身具有访问对象的权利,而代理模式提供了另外的一些方法去访问目标对象。就比如我们回家买票,我们可以自己直接买,也可以委托别人买,但都是为了买票。这很好的符合了软件工程的思维,不轻易改动原来的代码,可以通过扩展方法来进行操作。

image.gif编辑

责任链模式

责任链模式多用于对问题本身处理的效果比较看重的情况,将多个对象连成一条链接,收到的请求依次传递,直到某个对象处理这个请求为止。

备忘录模式

在不破坏系统封闭的前提下,捕捉某个对象的内部形态,并在另外的地方保存这个状态。这样以后就可将该对象恢复到原先保存的状态。主要是一种备份机制和考虑。

image.gif编辑

其实呀,每个模式都还大有讲头,更多精彩,欢迎关注公众号“编程社”,优质内容为你不断呈现。

转存失败重新上传取消image.gif编辑


相关文章
|
6月前
|
设计模式
【面试题精讲】javaIO设计模式之工厂模式
【面试题精讲】javaIO设计模式之工厂模式
|
6月前
|
设计模式
【面试题精讲】javaIO设计模式之适配器模式
【面试题精讲】javaIO设计模式之适配器模式
|
6月前
|
设计模式
【面试题精讲】javaIO设计模式之装饰器模式
【面试题精讲】javaIO设计模式之装饰器模式
|
6月前
|
设计模式 架构师 Java
阿里P8架构师都要学习研究的java加强版23种设计模式神级PDF文档
说在前面的话 Java作为老牌纯正的编程语言,在规范性上有着天然优势。因此本版的设计模式讲解全部用Java语言来描述,并针对Java语言的特性对讲解内容做了相当大的改动。 不知道大家是否听过编程界的一段话:掌握设计模式相当于华山派的"气宗",是程序员的内功修为,虽然在同样的学习时间下,类似Python这种"剑宗"的开发模式见效更快,但是长远来看,"气宗"才是走向软件架构师以上级别的必由之路。 所以,掌握气宗就掌握了编程命脉,然而学习设计模式有四大境界: 接下来给大家分享的就是java溢彩加强版大话设计模式包含的内容知识点。 总目录 主要内容 本文是百万销量的经典畅销书《
125 0
|
8月前
|
设计模式 存储 缓存
Java中的抽象类、接口、设计模式、包装类和泛型(附带相关面试题)
一.抽象类(abstract),二.接口(interface),三.设计模式,四.包装类,五.泛型
201 0
|
3月前
|
设计模式 Java 关系型数据库
BAT等大厂年薪30W+面试清单:JVM\MySQL\设计模式\分布式\微服务
疫情影响下招聘名额缩减不少,但阿里、腾讯、抖音、快手等互联网公司却加快了人才招聘的节奏。这里根据自身的实际经历,整理了一份面试这些大厂的清单,希望能帮助到大家查漏补缺,攻克面试难关。
|
3月前
|
设计模式 开发框架 前端开发
ajax应用设计模式,Ajax设计模式下Web开发的研究与应用
ajax应用设计模式,Ajax设计模式下Web开发的研究与应用
|
8月前
|
设计模式 Java 安全
Java中包的作用以及使用、访问权限、单例/多例设计模式、枚举和异常(附带相关面试题)
本章节讲述以下方面知识点 1.包的作用以及使用 2.单例/多例化设计模式 3.枚举 4.访问权限2.异常
54 0
Java中包的作用以及使用、访问权限、单例/多例设计模式、枚举和异常(附带相关面试题)
|
5月前
|
设计模式 安全 Java
面试~设计模式---单例模式
面试~设计模式---单例模式
27 0
|
6月前
|
设计模式 JSON 前端开发
前端面试必看(手写Promise+js设计模式+继承+函数柯里化等)JavaScript面试全通关(1/3)
前端面试必看(手写Promise+js设计模式+继承+函数柯里化等)JavaScript面试全通关(1/3)
42 0