模式 代码xa
实验 20:备忘录模式
[实验任务一]:多次撤销 改进课堂上的“用户信息操作撤销”实例,使得系统可以实现多次撤销(可以使用HashMap、ArrayList等集合数据结构实现)。 实验要求: 1. 提交源代码; package rjsj.no20; public class Client { public static v ......
实验 21:观察者模式
[实验任务一]:股票提醒 当股票的价格上涨或下降5%时,会通知持有该股票的股民,当股民听到价格上涨的消息时会买股票,当价格下降时会大哭一场。 实验要求: 1. 提交源代码; package test21; // 观察者接口,股民 interface Observer { void update(do ......
实验 25:访问者模式
[实验任务一]:打包员 在我们课堂上的“购物车”的例子中,增加一个新的访问者:打包员,负责对购物车中货物装包。 实验要求: 1. 提交源代码,不要提交类图; package test25; public abstract class AbstractGoods implements Goods{ p ......
实验6:原型模式
[实验任务一]:向量的原型 用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比较这两种克隆方式的异同。 实验要求: 1. 画出对应的类图; 2. 提交源代码(用C++完成); #include "stdafx.h" using namespace ......
实验9:桥接模式
[实验任务一]:两个维度的桥接模式 用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。 实验要求: 1. 画出对应的类图; 2. 提交源代码; #include <iostream> using namespace std; class Transportati ......
实验10:组合模式
[实验任务一]:组合模式 用透明组合模式实现教材中的“文件夹浏览”这个例子。 实验要求: 1. 文件的执行不需真正实现,只需简单提示即可; 2. 提交源代码; #pragma once #include<iostream> #include<string> #include<vector> usin ......
实验11:装饰模式
[实验任务一]:手机功能的升级 用装饰模式模拟手机功能的升级过程:简单的手机(SimplePhone)在接收来电时,会发出声音提醒主人;而JarPhone除了声音还能振动;更高级的手机(ComplexPhone)除了声音、振动外,还有灯光闪烁提示。 实验要求: 1. 提交类图; 2. 提交源代码; ......
实验12:外观模式
[实验任务一]:计算机开启 在计算机主机(Mainframe)中,只需要按下主机的开机按钮(on()),即可调用其他硬件设备和软件的启动方法 ,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(HardDisk)的读取(read())、操作系统(OS)的载入(load ......
实验5:建造者模式
[实验任务一]:计算机组装 使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。 实验要求: 1. 画出对应的类图; 2. 提交源代码; package test5; public class Compu ......
实验7:单例模式
[实验任务一]:学号的单一 仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。 实验要求: 1. 画出对应的类图; 2. 提交源代码; package test7; public class Client { public static void main(String[] args) { ......
实验8:适配器模式
[实验任务一]:双向适配器 实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。 实验要求: 1. 画出对应的类图; 2. 提交源代码; public class Adapter implements CatTarget, DogAdaptee { private CatTarget catta ......
实验3:工厂方法模式
[实验任务一]:加密算法 目前常用的加密算法有DES(Data Encryption Standard)和IDEA(International Data Encryption Algorithm)国际数据加密算法等,请用工厂方法实现加密算法系统。 实验要求: 1. 画出对应的类图; 2.提交该系统的 ......
实验4:抽象工厂模式
[实验任务一]:人与肤色 使用抽象工厂模式,完成下述产品等级结构: 实验要求: 1. 画出对应的类图; 2. 提交源代码; AbstractFactory类: package com.shiyan4; public interface AbstractFactory { public Man pro ......
gitlab下载代码到本地文件
1、先创建好本地文件夹 2、执行git命令 git bash here 3、下载git文件 下载分支代码 git clone -b dev2.0 http://velopment.git 不选择分支 git clone http://velopment.git ......
实验2:简单工厂模式
[实验任务一]:女娲造人 使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,如果传入参数R,则返回一个Robot对象。请用程序设计实现上述场景。 实验要求: 1. 画出对应的类图; 2. 提交源代码 TEST.J ......
Segment Anything(SAM)环境安装&代码调试
引子 Segment Anything是前阵子大火的CV领域模型,之前也有尝试,只是没有整理。OK,让我们开始吧 一、拉取下载docker镜像 docker pull cnstark/pytorch:2.0.1-py3.9.17-cuda11.8.0-ubuntu20.04 二、安装SAM环境 do ......
[转]Java8字符串和时间相互转换,使用模式字母的易错点
原文地址:Java 8 字符串和时间相互转换_java8字符串转时间-CSDN博客 1. 常见日期转换符号说明符号 说明 备注y 年 Y 本周所在的年 如果日期所在的周跨年了,年份就会是第二年的,需要注意M 月(month-of-year) d 日(day-of-month) D 年内的第几天(da ......
git叫出界面,并设置http方式推送代码
1.在初始使用git的时候提交代码时会有一个窗口提示CredentialHelperSelector 2.重新打开上面对话框的方式是在终端中输入 git credential-helper-selector 命令,然后按回车键即可。 3.支持协议 git 支持 ssh 和 https 两种协议,使用 ......
Jax的加速层的伪代码/中间层代码的生成和查看
地址: https://jax.readthedocs.io/en/latest/notebooks/thinking_in_jax.html#jit-mechanics-tracing-and-static-variables from jax import make_jaxpr def f(x, ......
[转帖]Oracle中unicode的几种不同字符编码模式
https://zhuanlan.zhihu.com/p/668340691# 在Oracle中unicode字符集中,存在以下几种不同unicode字符集的编码模式 AL32UTF8 UTF8 AL16UTF16 UTF-16BE UTF-16LE 下面讲一下它们的在Oracle一般都用在哪里以及 ......
PM-如何优雅的抄袭代码?世上所有代码都是一大抄
你借了我的思想,在我的思想上,发展出一套理好的思想。 你借了我的代码,在我的代码上,开发出一套理好的代码。 你们知道程序员最熟悉,最熟练,最常用的两个快捷键是哪两个吗?没错,估计你现在心中所想的就是:ctrl+c 和 ctrl+v ,俗名为:复制和粘贴。对于大部分程序员来说:复制和粘贴就是他敲代码, ......
Apache ActiveMQ 远程代码执行漏洞分析
Apache ActiveMQ官方发布新版本,修复了一个远程代码执行漏洞,攻击者可构造恶意请求通过Apache ActiveMQ的61616端口发送恶意数据导致远程代码执行,从而完全控制Apache ActiveMQ服务器。 ......
如何消除html代码
Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提高Laravel应 ......
Vue开发技巧:提高代码质量与开发效率
Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提高Laravel应 ......
掌握JavaScript中的性能优化和代码压缩
Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提高Laravel应 ......
设计模式(二十)状态
一、定义 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类,状态模式又称为状态对象,它是一种对象行为模式。 二、描述 状态模式是一种较为复杂的设计模式,用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题,包含以下三个角色: 1、Context(环境类):环境类又称为上 ......
在ASP.NET Core微服务架构下使用RabbitMQ如何实现CQRS模式
前言 在现代软件开发中,微服务架构和CQRS模式都是备受关注的技术趋势。微服务架构通过将应用程序拆分为一系列小型、自治的服务,提供了更好的可伸缩性和灵活性。而CQRS模式则通过将读操作和写操作分离,优化了系统的性能和可维护性。本文小编将为大家介绍如何在ASP.NET Core微服务架构下使用Rabb ......
测量长时间运行的代码
如果程序只是运行一个计算密集型的任务,那么分析器会自动地告诉我们程序中的热点在哪里。不过如果程序要做许多不同的处理,可能在分析器看来,没有任何一个函数是热点。程序还有可能会花费大量的时间等待 I/O 或是外部事件,这样降低了程序的性能,增加了程序的实际运行时间。在这种情况下,我们需要测量程序中各个部 ......
代码随想录 day14 二叉树的递归遍历 迭代遍历(栈) 统一遍历(栈)
二叉树的节点的孩子数量称之为度 所有节点度为0或2的二叉树是满二叉树 完全二叉树是所有非叶节点都是度为2的节点 叶子都尽可能的靠左 前序遍历:中左右 中序遍历:左中右 后续遍历:左右中 这里左右中指的是当前节点的遍历顺序 中就是先遍历当前节点 再遍历子树 前序遍历递归代码: 中序遍历递归代码: 后序 ......