我是靠谱客的博主 敏感过客,最近开发中收集的这篇文章主要介绍面试题之你知道哪几种设计模式?简述一下,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

首先搞懂:何为设计模式?

就是被反复使用,反复改进优化的一套经验。使用设计模式不仅有利于开发者在开发时思路更清晰,开发更高效,也让代码更容易被看懂。

进入正题:设计模式分类

  • 工厂模式:工厂类根据条件生成不同的子类,这些子类有一个公共的抽象父类并且实现了相同的方法,同时这些方法针对不同的数据有不同的操作,即多态方法。(当得到子类的实例后,开发人员可以调用基类中的方法而不需要考虑返回的是哪一个子类的实例)
  • 代理模式:给对象提供一个代理对象,由这个代理对象控制原对象的引用。
  • 模板(方法)模式:提供一个抽象类,将部分逻辑以具体方法或构造器的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。(比如JdbcTemplate)
  • 观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知 并被自动更新。(比如马路的红绿灯,红灯亮,汽车,轿车,卡车都要停住)
  • 外观(门面)模式:为子系统中的一组接口提供一个一致的界面(比如电话客服就可以是一个这个门面,他是消费者和商家和快递公司的接口,消费者直接联系客服就可以了)
  • 单例模式:保证一个类只有一个实例(Spring中bean的作用域默认就是单例的(Singleton))
  • 适配器模式:把一个类的接口变成客户端所期待的另一种接口,使得原本因接口不匹配而无法在一起使用的类能够一起工作(生活中生活用电220V和笔记本电脑20V不兼容时,我们需要引入一个 AC Adapter(交流电适配器),电脑就可以充电了)
  • 装饰模式/包装模式:对已存在的某些类进行装饰,来扩展一些功能

面试时能说出以上的这些设计模式就差不多了,当然也不要强求自己把想不起来的也说出来,结果说个错的,那就适得其反了,所以大家要选自己最熟悉最确定的说。

拓展几种设计模式

  • 观察模式:是一种行为性模型,行为型模式关注的是系统中对象之间的相互交互,解决系统在运行时对象之间的相互通信和协作,进一步明确对象的职责。
  • 策略模式:定义一系列的算法,把它们一个个封装起来, 并且使它们可根据不同应用需求,相互替换。本模式使得算法可独立于使用它的客户而变化。
  • 组合模式:将对像以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性.
  • 命令模式: 将来自客户端的请求传入一个对象,无需了解这个请求激活的动作或有关接受这个请求的处理细节。
  • 状态模式:不同的状态,不同的行为;或者说,每个状态有着相应的行为

建造者模式,原始模型模式,桥梁模式,合成模式,享元模式;命令模式,解释器模式,访问者模式,迭代子模式,调停者模式,备忘录模式,责任链模式。

希望本文能对你有所帮助,如果有大佬发现有错误,还希望能帮我指出来!我及时纠正;或者有朋友能够补充的也可以提出来,大家一起学习,一起进步!

最后

以上就是敏感过客为你收集整理的面试题之你知道哪几种设计模式?简述一下的全部内容,希望文章能够帮你解决面试题之你知道哪几种设计模式?简述一下所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部