设计模式-概述篇

在这里插入图片描述

1. 掌握设计模式的层次

  • 第1层:刚开始学编程不久,听说过什么是设计模式
  • 第2层:有很长时间的编程经验,自己写了很多代码,其中用到了设计模式,但是自己却不知道
  • 第3层:学习过了设计模式,发现自己已经在使用了,并且发现了一些新的模式挺好用的
  • 第4层:阅读了很多别人写的源码和框架,在其中看到别人设计模式,并且能够领会设计模式的精妙和带来的好处
  • 第5层:代码写着写着,自己都没有意识到使用了设计模式,并且练的写了出来

2. 介绍

  • 设计模式是程序员在面对同类软件工程设计问题所总结出来的的有用的经验,模式不是代码,而是某类问题的通用解决方案,设计模式(Design pattern)代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的
  • 设计模式的本质提高软件的维护性,通用性和扩展性,并降低软件的复杂度
  • 设计模式并不局限于某种语言,java、php、c++都有设计模式

3. 类型

  • 设计模式分为三种类型,共23种
    • 创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式
    • 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式
    • 行为型模式:模版方法模式、命令模式、访问者模式、迭代表器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式)

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

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

相关文章

Stable Diffusion本地部署全攻略:从概念到实战

目录 一、概念篇:什么是Stable Diffusion? 二、原理篇:Stable Diffusion是如何工作的? 三、作用篇:Stable Diffusion能为我们带来什么? 四、教程篇:如何在本地部署Stable Diffusion&#xf…

UDP send 出现大量“Resource temporarily unavailable”

背景 最近排查用户现场环境,查看日志出现大量的“send: Resource temporarily unavailable”错误,UDP设置NO_BLOCK模式,send又发生在进程上下文,并且还设置了SO_SNDBUF 为8M,在此情况下为什么还会出现发送队列满的情况…

Composer常见错误及解决方案

Composer常见错误及解决方案 Composer是PHP的依赖管理工具,它使得在PHP项目中管理和安装依赖库变得简单。然而,在使用Composer时,开发者可能会遇到一些常见的错误。在本文中,我们将探讨一些常见的Composer错误以及相应的解决方案…

【JavaWeb】Day28.SpringBootWeb请求响应——请求(一)

前言: 我们在开发web程序时呢,定义了一个控制器类Controller,请求会被部署在Tomcat中的Controller接收,然后Controller再给浏览器一个响应。 而在请求响应的过程中是遵循HTTP协议的。 但是,在Tomcat这类Web服务器中&a…

Jupyter Notebook启动及其常用快捷键

添加图片注释,不超过 140 字(可选) 1.JupyterNotebook 第一种启动方式 点击 windows 电脑左下角开始 > 搜索 Anaconda > 点击 Anaconda Prompt 添加图片注释,不超过 140 字(可选) 在命令行窗口输入&…

Java 多附件zip下载完整代码

需求:Java根据Url把多个文件下载到指定的文件夹目录,然后再将文件夹目录打包成zip导出. Slf4j Controller("test") Api(value "zip文件上传API", tags {"zip文件上传"}) public class Download { Autowired private Recor…

打造高效安全的电池管理 | 基于ACM32 MCU的两轮车充电桩方案

前 言 随着城市化进程的加快、人们生活水平的提高和节能环保理念的普及,越来越多的人选择了电动车作为代步工具,而两轮电动车的出行半径较短,需要频繁充电,因此在城市中设置两轮车充电桩就非常有必要了。城市中的充电桩不仅能解决…

NoSQL注入基础及思路

君衍. 一、NoSQL1、为什么使用NoSQL2、RDBMS与NoSQL区别3、NoSQL产品4、NoSQL 数据库分类 二、MongoDB1、认识MongoDB2、MongoDB特性3、MongoDB工作方式4、MongoDB缺陷5、MongoDB基本概念6、数据库Database7、文档Document8、集合Collection 三、MongoDB基本操作1、数据库操作2…

C++类继承基础3——访问控制与继承

私有继承 在C中,私有继承是一种继承方式,它定义了一个私有派生类,也称为派生类。私有继承意味着派生类继承了基类的所有成员,但这些成员在派生类中是私有的,对外部不可见。 要进行私有继承请使用private关键字&#…

蓝桥杯十四届JavaB组省赛ABCD

A阶乘求和 从1!一直加到202320232023!,如果一个个算阶乘的后九位再相加,算法可以实现,但是运算量很大,需要一段时间。用计算器算了一下100!阶乘发现后几位都是0,因此加到20232023202…

centos7.5 安装gitlab-ce (Omnibus)

一、安装前置依赖 # 安装基础依赖 $ sudo yum -y install policycoreutils openssh-server openssh-clients postfix# 启动 ssh 服务 & 设置为开机启动 $ sudo systemctl enable sshd & sudo systemctl start sshd二、安装gitlab rpm包 # 下载并执行社区版脚本 curl …

安装redis任意版本详解(包含yum安装和编译安装)

根据不同需求需要安装的redis版本不同,在此有编译安装和yum安装详细操作。(3.x 5.x 6.x 版本安装都有写到,可以根据需要进行部署参考) Yum安装redis yum install -y epel-release yum install -y redis 下载的是3.2.12版本 v…

AI如何影响装饰器模式与组合模式的选择与应用

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL应用》 💪🏻 制定明确可量化的目标,坚持默默的做事。 🚀 转载自热榜文章:设计模式深度解析:AI如何影响…

【Java初阶(七)】接口

❣博主主页: 33的博客❣ ▶文章专栏分类: Java从入门到精通◀ 🚚我的代码仓库: 33的代码仓库🚚 目录 1.前言2.接口2.1语法规则2.2接口使用2.3接口特性2.4实现多个接口2.5接口使用实例2.6Clonable接口和深拷贝 3.Object类3.1对象比较equals方法3.2hashcod…

vue系列——v-on

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>v-on指令</title> </head> <body>…

算法系列--递归,回溯,剪枝的综合应用(2)

&#x1f495;"对相爱的人来说&#xff0c;对方的心意&#xff0c;才是最好的房子。"&#x1f495; 作者&#xff1a;Lvzi 文章主要内容&#xff1a;算法系列–递归,回溯,剪枝的综合应用(2) 大家好,今天为大家带来的是算法系列--递归,回溯,剪枝的综合应用(2) 一.括号…

Java EE:Thread类中run和start的区别

目录 1、run 2、start 总结&#xff1a; Java 的线程是通过 java.lang.Thread 类来实现的。JVM 启动时会有一个由主方法所定义的线程&#xff08;main线程&#xff09;。可以通过创建 Thread 的实例来创建新的线程&#xff0c;从而实现多线程。 每个线程都是通过某个特定的 …

Memcached 教程之 Memcached set 命令(五)

Memcached set 命令 Memcached set 命令用于将 value(数据值) 存储在指定的 key(键) 中。 如果set的key已经存在&#xff0c;该命令可以更新该key所对应的原来的数据&#xff0c;也就是实现更新的作用。 语法&#xff1a; set 命令的基本语法格式如下&#xff1a; set key…

【MySQL】DQL-排序查询-语法&注意事项&可cv例题语句

前言 大家好吖&#xff0c;欢迎来到 YY 滴MySQL系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C Linux的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的…

【运维】Elsatic Search学习笔记

基本使用 Elasticsearch(简称ES): 是一个开源的高扩展的分布式全文搜索引擎 Docker安装Elasticsearch1 version: "3.1" services:elasticsearch:image: elasticsearch:7.13.3container_name: elasticsearchprivileged: trueenvironment:- "cluster.nameelast…