当前位置: 首页 > news >正文

哪些网站是做零售的/汕头seo公司

哪些网站是做零售的,汕头seo公司,软件开发前端需要学什么,.net开发微信网站流程目录 概念 需求 贫血模型 充血模型 总结 概念 贫血模型:一个类中只有属性或者成员变量,没有方法。充血模型:一个类中既有属性、成员变量,也有方法。 需求 定义一个类保存用户的用户名、密码、积分;用户必须具有…

目录

概念

需求

贫血模型

充血模型

总结


概念

  1. 贫血模型:一个类中只有属性或者成员变量,没有方法。
  2. 充血模型:一个类中既有属性、成员变量,也有方法。

需求

定义一个类保存用户的用户名、密码、积分;用户必须具有用户名;为了保证安全,密码采用密码的散列值保存;用户的初始积分为10分;每次登录成功奖励5个积分,每次登录失败扣3个积分。

贫血模型

优点:简单清晰,适合小型项目或简单业务逻辑。

缺点:业务逻辑分散,不利于复杂业务场景的维护。

class User
{public string UserName { get; set; }//用户名public string PasswordHash { get; set; }//密码的散列值public int Credit { get; set; }//积分
}
User u1 = new User(); u1.UserName = "ljy"; u1.Credit = 10;
u1.PasswordHash = HashHelper.Hash("123456");//计算密码的散列值
string pwd = Console.ReadLine();
if(HashHelper.Hash(pwd)==u1.PasswordHash)
{u1.Credit += 5;//登录增加5个积分Console.WriteLine("登录成功");
}
Else
{if (u1.Credit < 3)Console.WriteLine("积分不足,无法扣减");else{u1.Credit -= 3;//登录失败,则扣3个积分}Console.WriteLine("登录失败");
}

充血模型

符合“单一职责原则”

class User
{public string UserName { get; init; }        public int Credit { get; private set; }private string? passwordHash;public User(string userName){this.UserName = userName;this.Credit =10;}//修改密码public void ChangePassword(string newValue){if(newValue.Length<6){throw new Exception("密码太短");}this.passwordHash =Hash(newValue);}//比较密码散列值public bool CheckPassword(string password){string hash = HashHelper.Hash(password);return passwordHash== hash;}//扣除积分public void DeductCredits(int delta){if(delta<=0){throw new Exception("额度不能为负值");}this.Credit -= delta;}//增加积分public void AddCredits(int delta){this.Credit += delta;}
}
User u1 = new User("ljy");
u1.ChangePassword("123456");
string pwd = Console.ReadLine();
if (u1.CheckPassword(pwd))
{u1.AddCredits(5);Console.WriteLine("登录成功");
}
else
{u1.DeductCredits(5);Console.WriteLine("登录失败");
}

总结

贫血模型是站在开发人员的角度思考问题,充血模型是站在业务的角度思考问题。

相关文章:

ASP.NET Core的贫血模型与充血模型

目录 概念 需求 贫血模型 充血模型 总结 概念 贫血模型&#xff1a;一个类中只有属性或者成员变量&#xff0c;没有方法。充血模型&#xff1a;一个类中既有属性、成员变量&#xff0c;也有方法。 需求 定义一个类保存用户的用户名、密码、积分&#xff1b;用户必须具有…...

君海游戏岗位,需要私我

游戏岗位内推啦&#xff0c;需要找我哈 共14个职位 广告投放主管 社会招聘全国 广告投放 社会招聘全国 设计主管 社会招聘全国 海外投放 社会招聘广东省广州市 海外运营 社会招聘广东省广州市 产品运营专员 社会招聘广东省广州市 平台运营 社会招聘广东…...

IBM服务器刀箱Blade安装Hyper-V Server 2019 操作系统

案例:刀箱某一blade,例如 blade 5 安装 Hyper-V Server 2019 操作系统(安装进硬盘) 刀箱USB插入安装系统U盘,登录192.168... IBM BlandeCenter Restart Blande 5,如果Restart 没反应,那就 Power Off Blade 然后再 Power On 重启后进入BIOS界面设置usb存储为开机启动项 …...

Unity中实现动态图集算法

在 Unity 中&#xff0c;动态图集&#xff08;Dynamic Atlas&#xff09;是一种在运行时将多个纹理合并成一个大纹理图集的技术&#xff0c;这样可以减少渲染时的纹理切换次数&#xff0c;提高渲染效率。 实现原理&#xff1a; 动态图集的核心思想是在运行时动态地将多个小纹理…...

MySQL中的覆盖索引的使用

文章目录 1. 覆盖索引的定义2. 覆盖索引的工作原理2.1 索引和回表2.2 如何实现覆盖索引 3. 覆盖索引的优势4. 覆盖索引的限制5. 创建和优化覆盖索引5.1 分析查询模式5.2 确定需要覆盖的列5.3 创建复合索引5.4 使用覆盖索引优化查询5.5 避免过度索引5.6 索引整理与优化 6. 实际应…...

XML DOM

XML DOM XML DOM(Document Object Model)是一种用于访问和操作XML文档的标准方式。它提供了一种树形结构来表示XML文档,使得开发者能够方便地对XML数据进行读取、修改和操作。本文将详细介绍XML DOM的基本概念、结构、操作方法以及应用场景。 一、XML DOM的基本概念 XML …...

[开源]MaxKb+Ollama 构建RAG私有化知识库

MaxKbOllama&#xff0c;基于RAG方案构专属私有知识库 关于RAG工作原理实现方案 一、什么是MaxKb&#xff1f;二、MaxKb的核心功能三、MaxKb的安装与使用四、MaxKb的适用场景五、安装方案、 docker版Docker Desktop安装配置MaxKb安装和配置 总结和问题 MaxKB 是一款基于 LLM 大…...

迅为RK3568开发板篇OpenHarmony实操HDF驱动配置LED-LED测试

将编译好的镜像全部进行烧写&#xff0c;镜像在源码根目录 out/rk3568/packages/phone/images/目录下。 烧写完成之后&#xff0c;在调试串口查看打印日志&#xff0c;如下图所示&#xff1a; 然后打开 hdc 工具&#xff0c;运行测试程序&#xff0c;输入“led_test 1”&…...

将Mac上Python程序的虚拟环境搬到Windows

1. 导出Mac上Python虚拟环境的依赖 cd py && source venv/bin/activate && pip freeze > requirements.txt 2. 在Windows上创建一个新的虚拟环境 python -m venv venv 3. 激活虚拟环境 venv\Scripts\activate 4. 安装依赖 pip install -r requiremen…...

大语言模型评价 怎么实现去偏见处理

大语言模型评价 怎么实现去偏见处理 在训练大语言模型(LLMs)时,去偏处理对于避免模型学习到带有偏见的模式至关重要,以下从数据处理、模型训练、评估监测三个阶段介绍具体实现方法,并结合招聘场景进行举例说明: 数据处理阶段 数据清洗:仔细审查并剔除包含明显偏见的训练…...

3.React 组件化开发

react&#xff1a;版本 18.2.0node&#xff1a; 版本18.19.1脚手架&#xff1a;版本 5.0.1 一、类组件 (一) 一个干净的脚手架 【1】使用已经被废弃的 CRA (create-react-app) create-react-app 已经被废弃&#xff0c;且目前使用会报错&#xff0c;官方已经不推荐使用&…...

19vue3实战-----菜单子树的展示

19vue3实战-----菜单子树的展示 1.实现目标2.实现思路3.实现步骤3.1新建config配置文件3.2封装组件3.3使用组件 1.实现目标 如上,以上效果的难点是“在表格里面实现树形结构”。可以用element-plus框架中的table作为辅助: 可以自己查看文档了解怎么使用。 2.实现思路 上面的…...

【AI大模型】Ollama部署本地大模型DeepSeek-R1,交互界面Open-WebUI,RagFlow构建私有知识库

文章目录 DeepSeek介绍公司背景核心技术产品与服务应用场景优势与特点访问与体验各个DeepSeek-R系列模型的硬件需求和适用场景 Ollama主要特点优势应用场景安装和使用配置环境变量总结 安装open-webui下载和安装docker desktop配置镜像源安装open-webui运行和使用 RagFlow介绍主…...

JDK 17 和 JDK 21 在垃圾回收器(GC)上有什么优化?如何调整 GC 算法以提升应用性能?

JDK 17 和 JDK 21 在垃圾回收器&#xff08;GC&#xff09;上有什么优化&#xff1f;如何调整 GC 算法以提升应用性能&#xff1f; 本文将从 JDK 17 与 JDK 21 的垃圾回收改进出发&#xff0c;结合代码示例解析优化方案&#xff0c;并提供实际项目中的调优策略&#xff0c;帮助…...

CNN-GRU卷积神经网络门控循环单元多变量多步预测,光伏功率预测(Matlab完整源码和数据)

代码地址&#xff1a;CNN-GRU卷积神经网络门控循环单元多变量多步预测&#xff0c;光伏功率预测&#xff08;Matlab完整源码和数据) CNN-GRU卷积神经网络门控循环单元多变量多步预测&#xff0c;光伏功率预测 一、引言 1.1、研究背景和意义 随着全球能源危机和环境问题的日…...

kotlin中expect和actual关键字修饰的函数作用

在 Kotlin 多平台编程中&#xff0c;expect 和 actual 关键字用于定义跨平台的抽象和具体实现。这种机制允许开发者声明一个平台无关的接口或函数签名&#xff08;使用 expect&#xff09;&#xff0c;然后在每个目标平台上提供具体的实现&#xff08;使用 actual&#xff09;。…...

鸿蒙音视频播放器:libwlmedia

libwlmedia 跨平台播放器wlmedia现在已经支持了鸿蒙(Harmony)平台了&#xff0c;SDK插件地址&#xff1a;libwlmedia 一、接入SDK 1.1 导入SDK ohpm i ywl5320/libwlmedia1.2 添加权限&#xff08;可选&#xff09; 如果需要播放网络视频&#xff0c;需要添加网络权限 #m…...

【devops】 Git仓库如何fork一个私有仓库到自己的私有仓库 | git fork 私有仓库

一、场景说明 场景&#xff1a; 比如我们Codeup的私有仓库下载代码 放入我们的Github私有仓库 且保持2个仓库是可以实现fork的状态&#xff0c;即&#xff1a;Github会可以更新到Codeup的最新代码 二、解决方案 1、先从Codeup下载私有仓库代码 下载代码使用 git clone 命令…...

CEF132编译指南 MacOS 篇 - 构建 CEF (六)

1. 引言 经过前面一系列的精心准备&#xff0c;我们已经完成了所有必要的环境配置和源码获取工作。本篇作为 CEF132 编译指南系列的第六篇&#xff0c;将详细介绍如何在 macOS 系统上构建 CEF132。通过配置正确的编译命令和参数&#xff0c;我们将完成 CEF 的构建工作&#xf…...

mysql大数据量分页查询

一、什么是‌MySQL大数据量分页查&#xff1f; MySQL大数据量分页查‌是指在使用MySQL数据库时&#xff0c;将大量数据分成多个较小的部分进行显示&#xff0c;以提高查询效率和用户体验。分页查询通常用于网页或应用程序中&#xff0c;以便用户能够逐步浏览结果集。 二、为什…...

计算机毕业设计SpringBoot校园二手交易小程序 校园二手交易平台(websocket消息推送+云存储+双端+数据统计)(源码+文档+运行视频+讲解视频)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

尚硅谷爬虫note003

一、函数 1. 函数的定义 def 函数名&#xff08;&#xff09;&#xff1a; 代码 2.函数的调用 函数名&#xff08;&#xff09; 3. 定义参数&#xff08;不调用函数不执行&#xff09; def sum&#xff08;a&#xff0c;b&#xff09; #形参 c a b print&#xff08;c&…...

【逆向工程】破解unity的安卓apk包

先了解一下普通apk包的逆向方法&#xff08;无加密或加壳&#xff09; 开发环境&#xff1a; 操作系统&#xff1a;windows 解apk包 下载工具&#xff1a;apktool【Install Guide | Apktool】按照文档说的操作就行&#xff0c;先安装java运行时环境【我安装的是jre-8u441-wind…...

稠密架构和稀疏架构

稠密架构和稀疏架构 flyfish 稠密架构 参数使用方面&#xff1a;稠密架构中的大部分参数在每次计算时都会被使用。也就是说&#xff0c;对于输入的每一个样本&#xff0c;模型的所有或大部分参数都会参与到计算过程中。计算特点&#xff1a;计算密集&#xff0c;需要对大量的…...

LeetCode --- 436周赛

题目列表 3446. 按对角线进行矩阵排序 3447. 将元素分配给有约束条件的组 3448. 统计可以被最后一个数位整除的子字符串数目 3449. 最大化游戏分数的最小值 一、按对角线进行矩阵排序 直接模拟&#xff0c;遍历每一个斜对角线&#xff0c;获取斜对角线上的数字&#xff0c;排…...

用easyExcel如何实现?

要使提供的 ExcelModelListener 类来解析 Excel 文件并实现批量存储数据库的功能&#xff0c;需要结合 EasyExcel 库来读取 Excel 数据。具体来说&#xff0c;可以使用 EasyExcel.read() 方法来读取 Excel 文件&#xff0c;并指定 ExcelModelListener 作为事件监听器。 下面是…...

从 X86 到 ARM :工控机迁移中的核心问题剖析

在工业控制领域&#xff0c;技术的不断演进促使着工控机从 X86 架构向 ARM 架构迁移。然而&#xff0c;这一过程并非一帆风顺&#xff0c;面临着诸多关键挑战。 首先&#xff0c;软件兼容性是一个重要问题。许多基于 X86 架构开发的工业控制软件可能无法直接在 ARM 架构上运行…...

大模型DeepSeek-R1学习

学习路线 机器学习-> 深度学习-> 强化学习-> 深度强化学习 大模型演进分支 微调&#xff1a; SFT 监督学习蒸馏&#xff1a;把大模型作为导师训练小模型RLHF&#xff1a;基于人类反馈的强化学习 PPO 近端策略优化 油门 - 重要性采样 权重 * 打分刹车 - clip 修剪…...

【STM32】H743的以太网MAC控制器的一个特殊功能

调试743的MAC&#xff0c;翻阅手册的时候&#xff0c;发现了一个有意思的功能 混杂模式 H743的MAC控制器&#xff0c;可以设置为混杂模式&#xff0c;这就意味着它可以做一些网络监控的应用&#xff0c;譬如连接具备端口镜像功能的交换机&#xff0c;然后直接代替PC实现网络数据…...

关于“i18n“在vue中的使用

关于"i18n"在vue中的使用 <!-- vue2中 --> <template><div>{{ $t("This campaign has expired.") }}}}</div> </template> <script> export default {created() {this.onLoading();},methods: {onLoading () {this.$…...