Java23种设计模式简介_java设计模式-程序员宅基地

技术标签: java  Java设计模式  后端  开发语言  

Java设计模式共有23种,分别为:抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式、外观模式、适配器模式、桥接模式、组合模式、装饰模式、享元模式、代理模式、命令模式、解释器模式、访问者模式、迭代子模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、责任链模式。

1、抽象工厂模式是提供一个接口,用于创建相关或者依赖对象的家族,而不需要明确指定具体类。

2、建造模式是将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。

3、工厂方法模式定义一个创建对象的接口,让子类决定实例化那个类。

4、原型模式是用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。

5、单例模式,它的定义就是确保某一个类只有一个实例,并且提供一个全局访问点。

6、外观模式提供了一个统一的接口,用来访问子系统中的一群接口。

7、适配器模式是将一个类的接口,转换成客户期望的另一个接口。

8、桥接模式是讲抽象部分和实现部分隔离开来,使得他们能够独立变化。

9、组合模式组合多个对象形成树形结构以表示“整体-部分”的结构层次。

10、装饰模式:动态的给对象添加新的功能。

11、享元模式就是运行共享技术有效地支持大量细粒度对象的复用。

12、代理模式就是给一个对象提供一个代理,并由代理对象控制对原对象的引用。

13、命令模式将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。

14、解释器模式就是定义语言的文法,并且建立一个解释器来解释该语言中的句子。

15、访问者模式即在不改变数据结构的前提下,增加作用于一组对象元素的新功能。

16、迭代子模式是提供一种方法顺序访问一个聚合对象中的各个元素,而不暴露其内部的表示。

17、中介者模式就是用一个中介对象来封装一系列的对象交互。

18、备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态。

19、观察者模式定义了对象之间的一对多依赖关系。

20、状态模式就是允许对象在内部状态发生改变时改变它的行为。

21、策略模式就是定义了算法族,分别封装起来,让他们之前可以互相转换。

22、模板方法模式就是在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。

23、责任链模式是将请求的发送者和接收者解耦,使的多个对象都有处理这个请求的机会。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Alzqlzq/article/details/122287912

智能推荐

使用Dev-C++调试,变量的值 not found in current context,下一步是灰色无法点击-程序员宅基地

文章浏览阅读1w次,点赞10次,收藏13次。在学习使用Dev-C++进行调试时,设断点之后遇到了变量的值 not found in current context,下一步等是灰色无法点击这样的问题,如图。(1)在百度后了解到,应把工具->编译选项->代码生成/优化->连接器中的产生调试信息项改成YES,如图。这样就应该解决了问题。(2)但我还无法成功调试,后来发现是自己粗心,保存时将C语言的代码保存成.cpp为后缀而不是.c。.c代表C的源程序,.cpp代表c++源程序。重新保存成后缀为.c,就可以正常调试了。.._not found in current context

JS获取中文拼音首字母,并通过拼音首字母快速查找页面内的中文内容-程序员宅基地

文章浏览阅读5k次。实现效果:图一:图二:此例中输入的中文字符串“万万保重”,有三个字是多音字,所以alert对话框中显示的是多种读音的组合;如何实现?如何实现通过拼音首字母快速查找页面内的中文内容呢?过程原理是这样的:例如要对一些人名进行快速查找,当页面加载完成后,对所有人名建立一个索引,生成拼音首字母与姓名的对应关系;然后监听键盘事件,当用户按下键盘时,根据键值得到按下的是哪个字母,然后遍历索引中..._kjmypxjynwmjjm

Field类详解-程序员宅基地

文章浏览阅读4.1k次。//AccessibleObject 类是 Field、Method 和 Constructor 对象的基类。 public class AccessibleObject implements AnnotatedElement { /* * 1、实现了AnnotatedElement对注解支持的相关方法 * 2、提供访问控制 /_field类

数据可视化_数据可视化博客-程序员宅基地

文章浏览阅读1.4k次。数据可视化ECharts_数据可视化博客

初遇C#之HelloWorld程序_.net framework helloworld c#-程序员宅基地

文章浏览阅读4.8k次。一、开发环境 C#是一种面向对象的、运行于.NETFramework之上的高级程序设计语言。由于C#非常依赖于.NETFramework所以Win7就自带了.NETFramework3.5,Win8自带了.NETFramework 4.0。因此我可以先不使用VS IDE, 因为刚开始还是徒手建立自己的天下比较有好处,等到对基本的框架有了解之后,再来使用VS才能做到的心应手。否则_.net framework helloworld c#

vuecli3代码压缩混淆使用uglifyjs压缩JS_使用uglifyjs混淆vue3代码-程序员宅基地

文章浏览阅读4k次,点赞2次,收藏4次。、安装 “uglifyjs-webpack-plugin”cnpm i --save uglifyjs-webpack-plugin没有安装cnpm的同学可以用npm2、在项目根目录下创建一个名为 vue.config.js的文件3、在vue.config.js中引入uglifyjs-webpack-pluginconst UglifyPlugin = require('uglifyjs-webpack-plugin')4、在vue.config.js中配置uglifyjs-we_使用uglifyjs混淆vue3代码

随便推点

nodeJS之流stream_nodejs stream-json-程序员宅基地

文章浏览阅读1k次。概述  流(stream)在Nodejs中是处理流数据的抽象接口。stream模块提供了基础的API 。使用这些API可以很容易地来构建实现流接口的对象。Nodejs提供了多种流对象。 例如,HTTP请求和process.stdout都是流的实例  流可以是可读的、可写的,或是可读写的。所有的流都是 EventEmitter 的实例。  尽管所有的 Node.js 用户_nodejs stream-json

Elasticsearch(9) --- 聚合查询(Bucket聚合)_elasticsearch nest bucket聚合-程序员宅基地

文章浏览阅读457次。Elasticsearch(9) --- 聚合查询(Bucket聚合)系统小说 www.kuwx.net上一篇讲了Elasticsearch聚合查询中的Metric聚合:Elasticsearch(8) --- 聚合查询(Metric聚合)说明 本文主要参考于Elasticsearch 官方文档 7.3版本。 Bucket Aggregations概念:Bucket 可以理解为一..._elasticsearch nest bucket聚合

【大数据】三、相似项发现(Jaccard、Shingling、MinHashing)_shingling的作用-程序员宅基地

文章浏览阅读943次,点赞2次,收藏8次。文章目录1. Jaccard1.1 例题2. shingling2.1 k-shingle2.2 k 值大小的选择2.3 例题3. MinHashing3.1 minhashing 作用:压缩3.2 算法步骤、例题4. LSH 行条化策略的分析5. 距离测度1. Jaccard定义 Jaccard 相似度计算公式:定义 Jaccard 距离:1.1 例题不重复重复 (bag),最大值为 1 / 22. shingling将文档用短字符集合来表示2.1 k-shinglech_shingling的作用

EditText电话号码格式_edittext中的电话格式-程序员宅基地

文章浏览阅读514次。看了网上一些文章,自己改了改,小白/** * * @author Damon * 电话格式EditText */public class PhoneNumberEditText extends EditText implements TextWatcher { public PhoneNumberEditText(Context context, AttributeSet at_edittext中的电话格式

Windows7/10电脑怎么设置自动关机?实测有效!_windows10如何设置关机时间-程序员宅基地

文章浏览阅读248次。目录1. 桌面 — 右键点击此电脑(计算机)— 管理2. 计算机管理 — 任务计划程序 — 创建基本任务3. 创建基本任务向导3.1 名称:自动关机3.2 触发器:每天3.3 每日:设置每天在几点关机3.4 操作:启动程序3.5 启动程序:3.6 完成在网上搜索,发现很多设置自动关机的教程,要么是利用了电脑自动关机软件,要么有一些小问题。其实利用电脑的“定时任务”就可以轻松搞定电脑自动关机。这里图文记录一下操作的全部过程,小白照着做也能搞定Windows自动关机!1. 桌面 — 右键点击此电脑(计算机)_windows10如何设置关机时间

MATLAB算法实战应用案例精讲-【神经网络】激活函数:Swish(附python代码实现)_matlab bp 激活函数swich-程序员宅基地

文章浏览阅读1.5k次。Swish是谷歌在17年提出的一个激活函数,形式非常简单,几乎就是 sigmoid 和 ReLU 的拼凑,具备无上界有下界、平滑、非单调的特性,Swish 在深层模型上的效果优于 ReLU。例如,仅仅使用 Swish 单元替换 ReLU 就能把 Mobile NASNetA 在 ImageNet 上的 top-1 分类准确率提高 0.9%,Inception-ResNet-v 的分类准确率提高 0.6%。多种激活函数对比生物神经网络是人工神经网络的起源。_matlab bp 激活函数swich

推荐文章

热门文章

相关标签