设计模式的艺术P1基础—第1章 概述

news2024/9/22 5:33:32

刘伟,2020

概述:4部分,26章。

P1:基础(1-2章)

P2:创建型设计模式(创建艺术,3-8章)

P3:结构型设计模式(组合艺术,9-15章)

P4:行为型设计模式(交互艺术,16-26章)

设计模式是面向对象软件开发的入门功夫。

设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难。

设计模式的艺术P1基础—第1章 概述

招式和内功

招式:java等编程语言、vs code等开发工具、jap等开发技术、Hibernate等框架技术

内功:数据结构、算法、设计模式、重构、软件工程等。

模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。

软件模式是指在软件开发过程中某些可重现问题的有效解决方法,其基础结构主要由四部分构成,包括问题描述(待解决的问题是什么)、前提条件(在何种环境或约束条件下使用)、解法(如何解决)和效果(有哪些优缺点)

设计模式(Design Pattern)是一套被反复使用的、多数人知晓的、经过分类编目的代码设计经验的总结,使用设计模式是为了可以重用代码,让代码更容易被他人理解并且提高代码的可靠性。

设计模式一般包含模式名称、问题、目的、解决方案、效果等组成要素,其中关键要素是模式名称、问题、解决方案和效果。

问题(Problem)描述了应该在何时使用模式,它包含了设计中存在的问题以及问题存在的原因;解决方案(Solution)描述了一个设计模式的组成部分,以及这些组成部分之间的相互关系、各自的职责和协作方式,通常解决方案通过UML类图和核心代码进行描述;效果(Consequence)描述了模式的优缺点以及在使用模式时应权衡的问题。

根据某个模式主要是用于处理类之间的关系还是用于处理对象之间的关系,设计模式还可以分为类模式和对象模式。

学习设计模式将有助于初学者更加深入地理解面向对象思想。

如果将设计模式比喻成“三十六计”,那么每一个模式都是一种计策,它为解决某一类问题而诞生

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

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

相关文章

文件系统和日志

目录 一、inode号和black (一)inode号概述 (二)硬链接和软链接 (三)inode值 二、日志 (一)日志的分类 1.系统日志 2.用户日志 3.程序日志 (二)日志…

【SpringCloud Alibaba笔记】(4)Seata处理分布式事务

Seata 分布式事务问题 单机单库没这个问题,分布式之前从1: 1 -> 1:N ->N:N 分布式之后 单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用分别使用三个独立的数据源,业务操作需要调用三个服务来完成。 此时每个服务…

计算机毕业设计 基于javaweb的学生交流培养管理平台/系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

算法通关村番外篇-LeetCode热题100系列一

大家好我是苏麟 , 今天开始出这个LeetCode热题100系列 . LeetCode热题100 , 是LeetCode的热门题目也是面试比较爱考的 . 大纲 两数之和 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,…

Visual Studio 2022 AI Code 支持

1.先在 Log In | Codeium Free AI Code Completion & Chat 上注册一个用户 在Visual Stuido 中扩展中搜索 codeium 并安装 安装完成后登录即可。 注意国内可能存在网络问题无法使用这时建议使用代理进行登录。 地址如下: Sign Up | Codeium Free AI Code Co…

金蝶EAS pdfviewlocal.jsp接口存在任意文件读取漏洞 附POC软件

免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 1. 金蝶EAS简介 微信公众号搜索:南风漏洞复现文库 该…

Python笔记04-数据容器列表、元组、字符串、集合、字典

文章目录 listtuple 元组str序列(切片)setdict集合通用功能 Python中的数据容器: 一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素 每一个元素,可以是任意类型的数据,如字符串、数字、布尔等…

Anaconda详细安装步骤图文教程

文章目录 前言一、什么是Anaconda?二、为什么安装Anaconda三、如何安装AnacondaAnaconda关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试…

WEB 3D技术 three.js 解决几何体移动后 包围盒还留在原地问题

我们最基础方式 创建的包围盒 然后 通过 position 改变物体的位置 例如 这里我们改它的x轴 会发现 我们几何体移动了 但是 包围盒确留在了原地 我们可以通过 updateMatrixWorld和applyMatrix4的世界坐标更新举证解决 简单说 Mesh出来的实例对象.updateMatrixWorld 两个参数…

【MATLAB第89期】基于MATLAB的差分自回归滑动平均模型ARIMA时间序列预测模型含预测未来

【MATLAB第89期】基于MATLAB的差分自回归滑动平均模型ARIMA时间序列预测模型含预测未来 往期文章 【MATLAB第82期】基于MATLAB的季节性差分自回归滑动平均模型SARIMA时间序列预测模型含预测未来 一、模型介绍 1、模型简介 差分自回归移动平均模型(Autoregressiv…

Rapberry Pi 4 安装VxWorks笔记

Rapberry Pi 4 安装VxWorks笔记 本文章发表与我的github page: Rapberry Pi 4 安装VxWorks笔记 | Hi, I am watershade. Welcome to my pages. 在github page会有更好体验和更多文章。 一、概述 ROS2推荐的操作系统是ubuntu,众所周知,linux并不是实时…

mysql之CRUD和常见函数和UNION 和 UNION ALL

mysql之CRUD和常见函数和UNION 和 UNION ALL 一.CRUD1.创建(Create) - 插入数据2.读取(Read) - 查询数据3.更新(Update) - 修改数据4.删除(Delete) - 删除数据 二.函数1.字符串函数&…

VMware安装与CentOS8安装与配置

VMware安装与CentOS8安装与配置 话不多说,咱们开始干,文末附资料哦~ 一、安装VMware 1、双击安装包 2、如提出什么重启,重启就是了 3、按照提示下一步 4、选择安装目录,下一步 5、取消勾选,下一步 安装完成后&…

基于SSM酒店后台管理系统【源码】【最详细运行文档】

基于SSM酒店后台管理系统【源码】【最详细运行文档】 功能简介技术描述运行准备♝项目运行访问项目 演示图✅源码获取 💡 「分享」 大家好,最近几年在酒店后台管理系统非常流行,无论是上课的项目或者是一些毕设都会以酒店后台管理系统举例说…

【mysql】—— 事务

目录 (一)前言 (二)事务的理解 1、为什么会出现事务 2、什么是事务? 3、事务的版本支持 4、事务提交方式 (三)事务常见操作方式 1、正常演示 - 证明事务的开始与回滚 2、非正常演示…

4.5 A TILED MATRIX MULTIPLICATION KERNEL

我们现在准备展示一个tiled矩阵乘法内核,该内核使用共享内存来减少对全局内存的流量。图中4.16显示的内核。实施图4.15.中所示的阶段。在图4.16中,第1行和第2行声明Mds和Nds为共享内存变量。回想一下,共享内存变量的范围是一个块。因此&#…

过滤器和拦截器

上篇文章我们学习了 Session 认证和 Token 认证,这篇我们来学习一下过滤器和拦截器,过滤器和拦截器在日常项目中经常会用到。 一、过滤器 1.1、理论概念 过滤器 Filter 是 JavaWeb 三大组件(Servlet、Filter、Listener)之一&am…

为什么我国的计算机教育那么差?

建议看看计算机科学速成课,一门很全面的计算机原理入门课程,短短10分钟可以把大学老师十几节课讲不清楚的东西讲清楚!整个系列一共41个视频,B站上有中文字幕版。 每个视频都是一个特定的主题,例如软件工程、人工智能、…

CnosDB容灾方案概述

本文主要介绍了跟容灾相关的关键技术以及技术整合后形成的几种具体方案,每种方案都在RTO、RPO、部署成本和维护成本等方面有自己的特点和区别,可以根据具体场景选择最合适的方案。 基本概念 RTO(Recovery Time Objective)&#x…

计算机操作系统进程同步(信号量pv专题)

文章目录 一 基本概念1.1 多道程序中的制约关系1.2 临界资源(Critical Resouce)1.3 三区:进入区、临界区、退出区 二 同步机制应遵循的原则三 信号量机制类型3.1 整型信号量3.2 记录型信号量3.3 AND型信号量3.4 信号量集 四 信号量的应用4.1 信号量实现进程互斥4.2 …