(学习打卡1)重学Java设计模式之设计模式介绍

 前言:听说有本很牛的关于Java设计模式的书——重学Java设计模式,然后买了(*^▽^*)

开始跟着小傅哥学Java设计模式吧,本文主要记录笔者的学习笔记和心得。

打卡!打卡!

设计模式介绍

一、设计模式是什么?

设计模式是系统服务设计中针对常见场景的一种解决方案,可以解决功能逻辑开发中遇到的共性问题。

是一种解决方案。

是一种开发设计指导思想。

二、谁发明了设计模式

设计模式的概念最早是克里斯托弗·亚历山大在《建筑模式语言》中提出的,起源于建筑领域。

后来,埃里希·伽码、约翰·福利赛德斯、拉尔夫·约翰逊和理查德·赫尔姆四位作者接受了模式的概念,他们于1994年出版《设计模式:可复用面向对象软件的基础》一书,将设计模式的概念应用到程序开发领域。

三、设计模式有哪些种类

创建型模式:提供创建对象的机制,提升已有代码的灵活性和可复用性。

结构型模式:介绍如何将对象和类组成较大的结构,并同时保持结构的灵活和高效。

行为模式:负责对象间的高效沟通和职责传递委派

创建型模式包括:

  • 工程方法模式
  • 抽象工程模式
  • 建造者模式
  • 原型模式
  • 单例模式

结构型模式包括:

  • 适配器模式
  • 桥接模式
  • 组合模式
  • 装饰器模式
  • 外观模式
  • 亨元模式
  • 代理模式

行为模式包括:

  • 责任链模式
  • 命令模式
  • 迭代器模式
  • 中介者模式
  • 备忘录模式
  • 观察者模式
  • 状态模式
  • 策略模式
  • 模板模式
  • 访问者模式

四、如何学习设计模式

多练习和实操。开个玩笑哈~

建议是先看概念,对知识点有个大概的认识,然后结合案例和代码来看,一般都有正例和反例,这样方便大家理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/310352.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Springer build pdf乱码

在textstudio中编辑时没有错误,在editor manager生成pdf时报错。 首先不要改源文件,着重看你的上传顺序: 将.tex文件,.bst文件,.cls文件,.bib文件, .bbl文件的类型,在editor manager中是Item。…

微服务实战系列之Dubbo(下)

前言 眼看着2023即将走远,心里想着似乎还有啥,需要再跟各位盆友叨叨。这不说曹操,曹操就来了。趁着上一篇Dubbo博文的余温尚在,博主兴匆匆地“赶制”了Dubbo的下集,以飨读者。 上一篇博主依然从Dubbo的内核出发&#…

C++:stack、queue、priority_queue增删查改模拟实现、deque底层原理

C:stack、queue、priority_queue增删查改模拟实现 前言一、Cstack的介绍和使用1.1 引言1.2 satck模拟实现 二、Cqueue的介绍和使用2.1 引言2.2 queue增删查改模拟实现 三、STL标准库中stack和queue的底层结构:deque3.1 deque的简单介绍(了解)3.2 deque的缺陷3.3 为什么选择dequ…

项目中使用Java中List.subList()的注意事项

使用介绍 在Java中&#xff0c;subList是List接口的一个方法&#xff0c;用于获取原始列表的子列表 方法的声明如下 List<E> subList(int fromIndex, int toIndex);fromIndex&#xff1a;起始索引&#xff08;包括&#xff09;toIndex&#xff1a;结束索引&#xff08…

【数据结构】八、查找

一、基本概念 静态查找&#xff1a;只查找&#xff0c;不改变集合内数据元素 动态查找&#xff1a;有则输出元素&#xff0c;无则添加元素 二、静态查找表 2.1顺序查找 在线性表、链表、树中依次查找 2.2折半查找&#xff08;二分查找&#xff09; 在有序的线性表中&…

模式识别与机器学习-集成学习

集成学习 集成学习思想过拟合与欠拟合判断方法 K折交叉验证BootstrapBagging随机森林的特点和工作原理&#xff1a; BoostingAdaBoost工作原理&#xff1a;AdaBoost的特点和优点&#xff1a;AdaBoost的缺点&#xff1a; Gradient Boosting工作原理&#xff1a;Gradient Boostin…

【已解决】 ubuntu apt-get update连不上dl.google.com

在终端使用apt-get update时&#xff0c;连接dl.google.com超时&#xff0c;一直卡在0%&#xff0c;原因是当前ip无法ping到google&#xff08;墙&#xff09;。 解决方法&#xff1a; dl.google.com国内可用IP 选一个&#xff0c;然后按以下命令操作&#xff1a; cd ~ vim …

通信原理课设(gec6818) 007:语音识别

目录 1、去科大讯飞官网下载对应的sdk 2、科大讯飞文件夹的意思 3、配置ARM的录音环境 4、编程实现语音识别 我们的需求是将一个语音文件从客户端传到服务器&#xff0c;因此我们最好是选用tcp 现在市面上面常用的语音识别解决方案为&#xff1a;科大讯飞c和百度c 离…

【BERT】深入BERT模型2——模型中的重点内容,两个任务

前言 BERT出自论文&#xff1a;《BERT&#xff1a;Pre-training of Deep Bidirectional Transformers for Language Understanding》 2019年 近年来&#xff0c;在自然语言处理领域&#xff0c;BERT模型受到了极为广泛的关注&#xff0c;很多模型中都用到了BERT-base或者是BE…

数据库中的锁

锁 锁冲突是针对事务的&#xff0c;另一个事务能不能申请上锁&#xff0c;是和其他事务竞争。 一个事务内部可以加很多锁&#xff0c;互相并不会冲突。 级联回滚调度 多个事务有依赖关系&#xff0c;如果一个事务回滚&#xff0c;那么所有事务也需要回滚。 冲突的数据加锁安…

计算机毕业设计------SSM游戏点评网站

项目介绍 本项目分为前后台&#xff0c;前台为普通用户登录&#xff0c;后台为管理员登录&#xff1b; 管理员角色包含以下功能&#xff1a; 管理员登录,管理员管理,网站用户管理,游戏资讯管理,游戏类型管理,城市信息管理,竞技场管理,游戏信息管理,游戏评价信息管理等功能。…

集合基础知识点

集合基础 1. 集合的由来 当 Java 程序中需要存放数据的时候&#xff0c;通常会定义变量来实现数据的存储&#xff0c;但是&#xff0c;当需要存储大量数据的时候该怎么办呢&#xff1f;这时首先想到的是数组&#xff0c;但是&#xff01;数组只能存放同一类型的数据&#xff…