博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【面试题目】Java设计模式你有哪些了解?说几个常用的。
阅读量:1885 次
发布时间:2019-04-26

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

设计模式解决问题得到方案,学习现有的模式可以做到经验复用。拥有设计模式的词汇,在沟通时就能用更少的词汇来讨论,并且不需要了解底层细节。

创建型:

单例模式:确保一个类只有一个实例,并提供该实例的全局访问点。

简单工程模式:在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口;(提供一个product的通用接口,其余产品实现这个接口;工厂中用type通过if语句来判断实现哪一个)

工厂方法模式:定义了一个创建对象的接口,但是由子类决定要实例化哪个类。工厂方法把实例化操作延迟到子类了。(建立一个抽象的工厂类,其余类对其进行继承实现,每一个继承的工厂类实现对应的产品)

抽象工厂模式:提供一个接口,用于创建相关的对象家族。(抽象产品A;产品A继承抽象产品; 抽象工厂A; 工厂A继承抽象工厂A )

面试题目:工厂方法模式和抽象工厂模式有什么区别吗?

工厂方法模式:是一个抽象类的工厂,每一个工厂继承加工一种产品;

抽象工厂方法模式:是一个抽象类的工厂,每一个工厂的继承之前 加工不止一种的产品;产品也是抽象的。

行为型:

观察者模式:定义对象之间的一对多依赖关系,当一个对象状态改变时,它的所有依赖都会收到通知并且自动更新状态;

模板方法: 定义算法框架,并将一些步骤的实现延迟到子类。通过模板方法,子类可以重新定义算法的某些步骤,而不用改变算法的结构。即抽象类。

生产者/消费者模式: 但是生产和消费并不是GOF提出的23种设计模式之一,23种都是建立在面向对象的基础之上的,但其实面向过程的编程中有很多高校的编程模式,生产者消费者模式便是其中之一。生产者和消费者之间通过缓冲区(通常是一个阻塞队列)实现通讯,生产者将产生的数据放入缓冲区,消费者从缓冲区中获取数据。

结构型:

代理模式:控制对其它对象的访问。JDK代理和CGLIB代理。JDK代理是通过接口实现的,CGLIB代理是通过继承其实现子类。

装饰者模式:为对象动态添加功能。(装饰者和具体组件都继承自组件。组件是接口interface)

转载地址:http://acwdf.baihongyu.com/

你可能感兴趣的文章
基于java的酒店管理系统的设计与实现
查看>>
基于WEB的仓库管理系统的设计与实现
查看>>
基于java的web聊天系统
查看>>
基于java的俄罗斯方块的设计与实现
查看>>
基于java的魂斗罗的设计
查看>>
基于java的网页内容管理
查看>>
基于java的学生管理系统
查看>>
基于java网盘搜索的设计与实现
查看>>
基于SSM的仿小米商城源码
查看>>
基于SSM的医院人事管理系统的设计与实现
查看>>
基于SSM的网上购物系统的设计与开发
查看>>
基于SSM框架的BS微博系统的设计与实现
查看>>
超市订单管理系统
查看>>
基于ssm的民宿网站
查看>>
基于JavaWeb的物流管理系统的设计与实现
查看>>
基于java实现的超级马里奥游戏
查看>>
linux不删除文件:替换rm命令
查看>>
scala集合类型,函数
查看>>
yarn: 资源调度机制
查看>>
spark的shell脚本分析
查看>>